用户和组

用户和组的基本概念

概念 作用
用户名 用户的名称(区分大小写)
密码 使用用户所需的密码
用户标识(UID) 表示用户的数字标识符
组群标识(GID) 表示组的数字标识符
用户家目录 用户的私人目录,也是用户登录系统后默认所在的目录
登录shell 用户登陆后默认使用的shell程序,默认为/bin/bash
组群 具有相同属性的用户属于同一个组

💡注意事项
root管理员UID和GID都为0,系统用户的UID从1-999,普通用户的UID若不指定则从1000开始编号。
创建用户同时会创建一个与用户同名的组群,该组群是用户的主组群,普通组群的GID默认也是从1000开始编号。

用户配置文件

配置文件 作用
/etc/passwd 用户相关信息
/etc/shadow 用户密码信息
/etc/group 组相关信息
/etc/gshadow 组密码信息
/etc/login.defs 创建用户的一些相关信息的默认设置(用户UID/GID和密码参数等)
/etc/default/useradd 创建用户时默认值(默认家目录位置/Shell等)
/etc/skel 新用户的家目录中存在的文件默认就是从这个目录里复制的
/etc/shells 系统上安全的shell列表

/etc/passwd

所创建的用户账户及相关信息(除密码外)均放在该文件中。
每一行代表一个用户账户的资料,先是root,再是标准账户(shell为/sbin/nologin),最后是普通账户。
文件分为7个字段:用户名:加密口令:UID:GID:用户的描述信息:主目录:命令解释器

字段 说明
用户名 用户账号名称
加密口令 用户密码,使用字母"X"填充该字段
UID 用户号,唯一表示某用户的数字标识
GID 用户所属的私有组号,该数字对应group文件中的GID
用户描述信息 可选的关于用户全名、用户电话等描述性信息
主目录 用户家目录
命令解释器 用户所使用的shell,默认为“/bin/bash”

/etc/shadow

用户经过加密之后的密码都存放在/etc/shadow文件中,并且只有root用户可读。
shadow文件保存加密之后密码以及与密码相关的一系列信息,每个用户的信息在该文件占用一行。
每一行分为9个字段:

字段 说明
1 用户名
2 加密后的口令,*表示非登录用户,!!表示没设置密码
3 从1970.01.01起,到用户最近一次更改密码的天数
4 从1970.01.01起,到用户可以更改密码的天数,最短口令存活期
5 从1970.01.01起,到用户必须更改密码的天数,最长口令存活期
6 口令过期前几天提醒用户更改口令
7 口令过期几天账号被禁用
8 口令被禁用的具体日期(从1970.01.01至禁用时的天数)
9 保留域,用于功能扩展

/etc/login.defs

建立用户账号时会根据/etc/login.defs文件的配置来设置用户的某些选项。
该配置文件的有效设置内容及中文注释如下:

MAIL_DIR /var/spool/mail # 用户邮箱目录
PASS_MAX_DAYS 99999  # 密码有效期,以1970-01-01开始有效期的天数
PASS_MIN_DAYS 0      # 用户需在指定天数后才能再次修改密码
PASS_MIN_LEN 5       # 密码最小长度(如今用户登录时验证已被PAM模块取代,此选项不生效)
PASS_WARN_AGE 7      # 密码过期前多少天开始通知用户密码即将到期
UID_MIN 1000         # 创建用户时自动产生的最小UID值
UID_MAX 60000        # 创建用户时自动产生的最大UID值
GID_MIN 1000         # 创建组时自动产生的最小GID值
GID_MAX 60000        # 创建组时自动产生的最大GID值
USERDEL_CMD /usr/sbin/userdel_local # 若定义的话,将在删除用户时执行,以删除相应的用户计划作业和打印作业等
CREATE_HOME yes                     # 创建用户时是否为用户创建家目录

/etc/group

用于存放用户的组帐户信息,该文件的内容任何用户都可读取。
每个组群账号在文件中占用一行,并用:分隔为4个字段:组群名称:组群口令(一般为空,用X填充):GID:组群成员列表
root的GID为0,没有其他组成员。
该文件的组群成员列表若有多个用户在同一组群,则各个成员之间用,分隔。
该文件中,用户的所属组并不把用户作为成员列出,只有用户的附属组才会把用户作为成员列出。

/etc/gshadow

用于存放组群的加密口令,组管理员等信息,该文件只有root用户可以读取。
每个组群账号在该文件中占用一行,并以:分隔为4个字段:组群名称:加密后的组群口令(没有设置则用"!"):组群的管理员:组群成员列表

实例

useradd 新建用户

useradd -c test test1       # 添加注释信息
useradd -d /var/test2 test2 # 指定家目录
useradd -e 2022-02-02 test3 # 账户到期时间
useradd -g tests test4      # 指定用户所属组
useradd -G tests test5      # 指定用户扩展组
useradd -M test6 			      # 不创建用户家目录
useradd -N test7 				    # 不创建与用户同名的用户组
useradd -n test8            # 不为用户创建组群
useradd -p 123 test9        # 设置用户密码
useradd -s /bin/bash test10 # 指定用户登录shell
useradd -u 1010 test11      # 指定用户UID
useradd -m test12 				  # 若用户主目录不存在则创建
useradd -f 10 test13 			  # 设置用户过去多少天后禁用(0为立即禁用,-1为不禁用)

passwd 指定和修改用户账号密码

passwd -l test1 # 锁定密码
passwd -u test1 # 解锁密码
passwd -d test1 # 使用空密码
passwd -e test1 # 强制用户下次登录修改密码
passwd -S test1 # 查看test1密码的相关信息
passwd -n 3 test1  # 指定test1修改密码后,在3天后才能再次修改密码
passwd -x 10 test1 # 指定test1密码有效期为10天
passwd -w 2 test1  # 指定test1密码到期前2天提醒
passwd -i 1 test1  # 指定test1密码到期1天后停止该账号
echo dcncloud | passwd --stdin test1 # 使用标准输入修改用户密码

usermod 修改用户的属性

usermod -c hello test1         # 修改用户的备注信息
usermod -m -d /var/test1 test1 # 重新指定用户的家目录并自动将旧的数据转移
usermod -e 2022-02-02 test1    # 修改用户的到期时间
usermod -g 0 test1 					   # 变更用户所属用户组
usermod -G tests test1 				 # 变更用户扩展组
usermod -L test1    		 			 # 锁定用户密码
usermod -U test1 						   # 解锁用户密码
usermod -s /bin/bash test1 		 # 修改默认终端
usermod -u 1011 test1 				 # 修改用户的UID

userdel 删除用户

userdel -r test13 # 同时删除家目录
userdel -f test12 # 强制删除用户

groupadd 创建用户组

groupadd -g 1120 te # 创建指定GID的用户组

groupdel 删除用户组

groupdel te # 删除用户组

groupmod 修改用户组

groupmod -g 1030 test12   # 修改GID
groupmod -n test1-1 test1 # 修改组名

gpasswd 在附属组中添加、删除用户

gpasswd -a test1 test10 # 把test1加入到test10组中
gpasswd -d test1 test10 # 把test1从test10组中删除
gpasswd -r test10       # 取消test10组密码
gpasswd -A root test10  # 为test10组指派管理员

su 切换用户

su - test10 # 切换到test10用户并切换到该用户的家目录

id 查看用户信息

id test10 # 查看用户test10信息
posted @   kauro  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示