用户和组
用户和组的基本概念
概念 | 作用 |
---|---|
用户名 | 用户的名称(区分大小写) |
密码 | 使用用户所需的密码 |
用户标识(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信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了