Linux用户和用户组的管理
目录
- 前言
- 一、系统环境
- 二、Linux用户组的管理
- 2.1 新增用户组
- 2.2 删除用户组
- 2.3 修改用户组
- 2.4 查看用户组
- 三、Linux用户的管理
- 3.1 新增用户
- 3.2 删除用户
- 3.3 修改用户
- 3.4 查看用户
- 3.5 用户口令(密码)的管理
- 总结
前言
本篇文章介绍如何在Linux系统上实现对用户组的管理,包括用户组的新增、删除和修改;除此之外,还介绍如何实现对用户的管理,包括用户的新增、删除、修改等操作。
一、系统环境
- 虚拟机版本:VMware® Workstation 15 Pro
- Linux镜像文件:CentOS-7-x86_64-Minimal-1804.iso
- 主机系统:Windows 11 家庭中文版
- 主机系统类型:64 位操作系统, 基于 x64 的处理器
- 远程连接工具:MobaXterm中文版本
二、Linux用户组的管理
将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。
一个用户可以对应一个或多个用户组,一个用户组可以对应多个用户,用户和用户组属于多对多的关系。
对Linux用户组进行管理时,需要切换到root用户,即系统管理员。
2.1 新增用户组
语法格式:groupadd 用户组名例子,
groupadd pyspring
表示新增了一个用户组pyspring
2.2 删除用户组
语法格式:groupdel 用户组名例子,
groupdel pyspring
表示删除了一个用户组pyspring
2.3 修改用户组
语法格式:groupmod 选项 用户组名
选项有如下:
-n 新用户组名 修改用户组名
-g GID 修改用户组ID(不建议使用,最好不要修改组ID,使用系统分配就好)例子1,
groupmod -n pys pyspring
表示将用户组pyspring修改为pys例子2
groupmod -g 1002 pyspring
表示将用户组pyspring的ID修改为1002
2.4 查看用户组
语法格式:getent group
在命令行直接输入getent group即可查看系统当前的用户组信息。getent group命令输出内容为/etc/group文件保存的内容
而/etc/group文件保存着系统所有用户组的信息
用户组信息格式说明:
用户组名:口令:用户组ID:用户
注:当一个用户组拥有多个用户时,用户字段每个用户之间使用逗号隔开
三、Linux用户的管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号可以帮助系统管理员追踪用户,并控制用户对系统资源的访问,也可以帮助用户组织文件,并且为用户提供安全性保护。
每个用户账号拥有唯一的用户名和口令(密码)。用户登录系统后,进入自己的主目录。
用户的主目录一般是/home/用户名。
对Linux用户进行管理时,需要切换到root用户,即系统管理员。
3.1 新增用户
语法格式:useradd 选项 用户名
选项有如下:
-c 描述内容 指定关于这个账号的注释性描述
-d 目录 指定用户的主目录,用户默认的主目录是/home/用户名
-g 用户组 指定用户所属用户组,系统默认创建一个与用户名相同的用户组
-G 用户组,用户组,... 指定用户所属的附加组,一个用户可以拥有一个主组,和多个附加组
-s Shell文件 指定用户的登录Shell,本系统环境默认bash(Bourne Again Shell)例子1,
useradd pyspring
表示创建一个用户名为pyspring的用户,主目录为/home/pyspring,所属组为pyspring例子2,
useradd -g pyspring -d /home/pyshome pys
表示创建一个用户名为pys的用户,主目录为/home/pyshome,所属用户组为pyspring
注:useradd pys -g pyspring -d /home/pyshome 效果和上面一致
3.2 删除用户
语法格式:userdel -r 用户名
-r 表示将用户的主目录一起删除例子,
userdel -r pys
表示将用户名为pys的用户删除,并将其主目录删除
3.3 修改用户
语法格式:usermod 选项 用户名
选项有如下:
-c 描述内容 修改关于这个账号的注释性描述
-d 目录 修改用户的主目录
-g 用户组 修改用户所属用户组
-G 用户组,用户组,... 修改用户所属的附加组
-s Shell文件 修改用户的登录Shell
-l 新用户名 修改用户的用户名例子1,
usermod -l pysdd pys
表示将用户名为pys的用户修改成pysdd
3.4 查看用户
语法格式:getent passwd
在命令行直接输入getent passwd即可查看系统当前所有的用户信息。getent passwd命令输出内容为/etc/passwd文件保存的内容。
而/etc/passwd文件保存着系统当前所有用户的信息。语法格式:id 用户名例子1,
id
可以查看当前登录用户的用户信息,一般用于用户自身信息的查看例子2,
id pyspring
可以查看用户名为pyspring的用户信息,一般用于用户查看其他用户的信息
用户信息格式说明
用户名:口令(密码):用户ID:用户组ID:注释性描述:主目录:登录Shell
下面介绍关于每个字段的说明
字段 | 说明 |
---|---|
用户名 | 由大小写字母和/或数字组成。用户名中不能有冒号(:),因为冒号在这里是分隔符。为了兼容起见,用户名尽量使用字母和数字组成。 |
口令 | 口令其实就是登录密码,一般经过加密后保存到/etc/shadow文件中,而在其他地方使用x代替 |
用户ID | 系统内部用来标识用户 |
用户组ID | 用户所属用户组 |
注释性描述 | 关于这个账号的描述,内容一般为空 |
主目录 | 用户起始的工作目录 |
登录Shell | Shell是用户与Linux系统之间的接口。常见的Shell有sh(Bourne Shell)、csh(C Shell)、ksh(Korn Shell)、tcsh(TENEX-20 type C Shell)、bash(Bourne Again Shell) |
关于系统的伪用户(pseudo users)
伪用户:指为了方便系统的管理,满足相应的系统进程对文件属主的要求而创建的用户,这些用户的登录Shell为空,无法进行登录。以下列举说明
伪用户名 | 含义 |
---|---|
bin | 拥有可执行的用户命令文件 |
sys | 拥有系统文件 |
adm | 拥有账号文件 |
uucp | UUCP使用 |
lp | lp或lpd子系统使用 |
nobody | NFS使用 |
3.5 用户口令(密码)的管理
一个新用户被创建时,用户账号是没有口令的,但是被系统锁定,无法使用,必须为新创建的用户指定口令后才可以使用,即使是空口令。
语法格式:passwd 选项 用户名
选项有如下:
-l 锁定口令,即禁用账号
-u 口令解锁
-d 使账号无口令
-f 强迫用户下次登录后修改口令例子1,
passwd
表示当前登录的用户修改自身的口令,一般用于普通用户修改自身的密码例子2,
passwd pyspring
表示修改用户名为pyspring的口令,用于超级管理员修改普通用户的密码例子3,
passwd -l pyspring
表示将用户名pyspring的账号锁定
总结
/etc/group文件保存关于用户组的信息
/etc/passwd文件保存关于用户的信息
/etc/shadow文件保存关于用户口令的信息
相关文章:

Linux用户和用户组的管理
目录 前言一、系统环境二、Linux用户组的管理2.1 新增用户组2.2 删除用户组2.3 修改用户组2.4 查看用户组 三、Linux用户的管理3.1 新增用户3.2 删除用户3.3 修改用户3.4 查看用户3.5 用户口令(密码)的管理 总结 前言 本篇文章介绍如何在Linux系统上实现…...

项目-五子棋双人对战:游戏房间的管理(5)
完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 之前我们已经实现了玩家匹配的功能, 我们都知道, 匹配完过后就可以进入游戏房间进行对战了, 所以我们下一步关注的重点就是对于游戏房间的管理. 模块详细讲解 功能需求 通过匹配的方式, 自动给玩家加入到一个游戏房间…...
LocalDate和Date有什么区别?两者如何转换?
LocalDate与Date 在Java中,LocalDate和Date是用来处理日期的两种不同的类。 区别: Date是Java早期的日期类,它包含了日期和时间的信息。但是在Java 8之后,Date类被标记为过时的,推荐使用新的日期时间API,…...

铝合金货物运输鉴定书办理 货物危险性鉴定
货物运输鉴定书/货物危险性鉴定 项目背景: 为了运输的安全,航空运输、公路运输、铁道运输、水路运输都必须了解货物的运输危险性。货物运输条件鉴定就是对货物的运输适宜性作出评价和建议。 货物运输条件鉴定一般依据IATA危险货物规章(DGR)2005、联合国危…...
php操作数据库
<?php session_start(); #面向过程 function create_connection(){ $conn mysqli_connect(127.0.0.1,root,123456,learn_2) or die("数据库连接失败"); mysqli_query($conn,"set names utf8"); return $conn; } #面向对象 function create_connection…...
python记录之集合
Python中的集合(Set)是一个无序且不包含重复元素的数据结构。集合主要用于成员检测和数据去重。 1. 集合的创建 在Python中,你可以使用大括号{}或set()函数来创建一个集合。注意,如果你使用大括号{}并且只包含一个元素ÿ…...
ResourceManager 的 rpc server 模型
一. yarn ResourceManager 的三种通信协议 ResourceTrackerProtocol NodeManager 和 ResourceManager 的 RPC 通信协议。其中 ResourceManager 充当RPC Server的角色,而 NodeManager 充当 RPC Client 的角色。NodeManager 通过该协议向 ResourceManager 注册、汇报…...

Java面试八股之什么是自动装箱和自动拆箱
什么是自动装箱和自动拆箱 在Java中,自动装箱(Autoboxing)和自动拆箱(Auto-unboxing)是两个与基本数据类型和它们对应的包装类之间的转换相关的特性。这两个概念自Java 5(也称为Java SE 5或JDK 5ÿ…...

OrangePi AIpro小试牛刀-目标检测(YoloV5s)
非常高兴参加本次香橙派AI Pro,香橙派联合华为昇腾打造的一款AI推理开发板评测活动,以前使用树莓派Raspberry Pi4B 8G版本,这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…...

QT案例 记录解决在管理员权限下QFrame控件获取拖拽到控件上的文件路径
参考知乎问答 Qt管理员权限如何支持拖放操作? 的回答和代码示例。 解决在管理员权限运行下,通过窗体的QFrame子控件获取到拖拽的内容。 目录标题 导读解决方案详解示例详细 【管理员权限】在QFrame控件中获取拖拽内容 【管理员权限】继承 IDropTarget 类…...

[HNCTF 2022 WEEK4]flower plus
第一种花指令 第二种花指令 根据两种花指令特征,写出去花指令脚本 saddr0x401000 eaddr0x435000 for i in range(saddr,eaddr):if get_wide_dword(i)0x01740275:print(hex(i),hex(get_wide_dword(i)))patch_byte(i-5,0x90)patch_dword(i-4,0x90909090)patch_dw…...
Mongo常用语法(java代码)
1、根据agentId字段分组,并对totalCustomerNum、refundCustomerNum字段 sum求和,同时取别名 Overridepublic List<AgentCountInfoBean> selectCurrentMonthNewResource(Set<String> orderTypeSet, List<String> agentIds,LocalDateTim…...

go语言后端开发学习(二)——基于七牛云实现的资源上传模块
前言 在之前的文章中我介绍过我们基于gin框架怎么实现本地上传图片和文本这类的文件资源(具体文章可以参考gin框架学习笔记(二) ——相关数据与文件的响应),但是在我们实际上的项目开发中一般却是不会使用本地上传资源的方式来上传的,因为文件的上传与读…...
探索微软新VLM Phi-3 Vision模型:详细分析与代码示例
引言 在最近的微软Build大会上,微软宣布了许多新内容,其中包括新款Copilot PC和围绕Copilot生态系统的一系列功能。其中最引人注目的是发布了一些新的Phi模型,特别是Phi-3 Vision模型。本文将详细探讨Phi-3 Vision模型的特性,并提…...

如何使用GPT-4o函数调用构建一个实时应用程序?
本教程介绍了如何使用OpenAI最新的LLM GPT-4o通过函数调用将实时数据引入LLM。 我们在LLM函数调用指南(详见https://thenewstack.io/a-comprehensive-guide-to-function-calling-in-llms/)中讨论了如何将实时数据引入聊天机器人和代理。现在,我们将通过将来自Fligh…...

[Vue-常见错误]浏览器显示Uncaught runtime errors
文章目录 错误描述正确写法具体如下 错误描述 当前端代码发生错误时,浏览器中出现以下错误提示。 正确写法 显然这不是我们所期望的,在vue.config.js中配置如下设置关闭Uncaught runtime errors显示 devServer: {client: {overlay: false}具体如下 …...
html常见的表单元素有哪些,html表单元素有哪些?
HTML中常用的表单元素包括:文本区域(TEXTAREA),列表框(SELECT),文本输入框(INPUT typetext),密码输入框(INPUT typepassword),单选输入框(INPUT typeradio),复选输入框(INPUT typecheckbox),重置…...

spring boot sso
代码:https://gitee.com/forgot940629/ssov2 授权服务 登录成功后,session中会存储UsernamePasswordAuthenticationToken,之后每次请求code时都会用UsernamePasswordAuthenticationToken生成OAuth2Authentication,并将OAuth2Aut…...
Keras深度学习框架实战(5):KerasNLP使用GPT2进行文本生成
1、KerasNLP与GPT2概述 KerasNLP的GPT2进行文本生成是一个基于深度学习的自然语言处理任务,它利用GPT-2模型来生成自然流畅的文本。以下是关于KerasNLP的GPT2进行文本生成的概述: GPT-2模型介绍: GPT-2(Generative Pre-trained …...
速盾:网站重生之我开了高防cdn
在互联网的广袤海洋中,网站就如同一个个独立的岛屿,面临着各种风雨和挑战。而作为一名专业程序员,我深知网站安全和性能的重要性。当我的网站遭遇频繁的攻击和访问压力时,我毅然决定开启高防 CDN,开启了一场网站的重生…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...