Linux用户和用户组管理
组管理
groupadd
groupadd
命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
基本语法:groupadd [-g gid [-o]] [-r] [-f] group
参数说明:
[root@bolog ~]# groupadd --help
用法:groupadd [选项] 组
选项:
-f, --force 如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
[root@bolog ~]# groupadd -g 88888 g03
[root@bolog ~]# tail -3 /etc/group
g01:x:1000:
g02:x:1001:
g03:x:88888:
[root@bolog ~]# groupadd g04
[root@bolog ~]# tail -4 /etc/group
g01:x:1000:
g02:x:1001:
g03:x:88888:
g04:x:1002:
直接 groupadd g04
添加的常规用户组从组id1000开始累加
使用-r
groupdel
groupdel
命令用于删除群组。需要从系统上删除群组时,可用groupdel(group delete)指令来完成这项工作。但倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
基本语法: groupdel [群组名称]
[root@bolog ~]# groupdel --help
用法:groupdel [选项] 组
选项:
-h, --help 显示此帮助信息并推出
-R, --root CHROOT_DIR chroot 到的目录
[root@bolog ~]# groupdel g04
[root@bolog ~]# groupdel g03
[root@bolog ~]# groupdel g02
[root@bolog ~]# groupdel g01
[root@bolog ~]# tail -4 /etc/group
sshd:x:74:
chrony:x:996:
cgred:x:995:
docker:x:994:
groupmems
groupmems
命令用于管理某个用户组的成员。通常只有超级用户或该用户组的管理员才能使用此命令。
基本语法:groupmems -a username -g groupnme
[root@bolog ~]# groupmems --help
用法:groupmems [选项] [动作]
选项:
-g, --group groupname 更改组 groupname,而不是用户的组(只 root)
-R, --root CHROOT_DIR chroot 到的目录
动作:
-a, --add username 将用户 username 添加到组成员中
-d, --delete username 从组的成员中删除用户 username
-h, --help 显示此帮助信息并推出
-p, --purge 从组中移除所有成员
-l, --list 列出组中的所有成员
gpasswd
gpasswd
命令用于管理组的密码以及组的成员。它的功能更广泛,除了管理成员外,还可以设置组的密码。
基本语法:gpasswd [选项] <username> <groupname>
[root@bolog ~]# gpasswd --help
用法:gpasswd [选项] 组
选项:
-a, --add USER 向组 GROUP 中添加用户 USER
-d, --delete USER 从组 GROUP 中添加或删除用户
-h, --help 显示此帮助信息并推出
-Q, --root CHROOT_DIR 要 chroot 进的目录
-r, --delete-password remove the GROUP's password
-R, --restrict 向其成员限制访问组 GROUP
-M, --members USER,... 设置组 GROUP 的成员列表
-A, --administrators ADMIN,... 设置组的管理员列表
除非使用 -A 或 -M 选项,不能结合使用这些选项。
groupmod
groupmod
命令用于修改Linux系统中的用户组属性。
基本语法:groupmod [选项] <groupname>
[root@bolog ~]# groupmod --help
用法:groupmod [选项] 组
选项:
-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并推出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
用户管理
useradd
useradd
用于添加用户
useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中。
基本语法:
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
useradd [选项]
[root@bolog ~]# useradd --help
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
userdel
userdel
命令用于删除用户帐号。
userdel
可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
基本语法:b
[root@bolog ~]# userdel --help
用法:userdel [选项] 登录
选项:
-f, --force force some actions that would fail otherwise
e.g. removal of user still logged in
or files, even if not owned by the user
-h, --help 显示此帮助信息并推出
-r, --remove 删除主目录和邮件池
-R, --root CHROOT_DIR chroot 到的目录
-Z, --selinux-user 为用户删除所有的 SELinux 用户映射
usrmod
usermod命令用于修改用户帐号的各项设定。
基本语法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
[root@bolog ~]# usermod --help
用法:usermod [选项] 登录
选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
[root@bolog ~]# useradd test
[root@bolog ~]# id test
uid=1000(test) gid=1000(test) 组=1000(test)
[root@bolog ~]# usermod -u 1003 test
[root@bolog ~]# id test
uid=1003(test) gid=1000(test) 组=1000(test)
[root@bolog ~]# usermod -g root test
[root@bolog ~]# id test
uid=1003(test) gid=0(root) 组=0(root)
[root@bolog ~]# usermod -g test test
[root@bolog ~]# id test
uid=1003(test) gid=1000(test) 组=1000(test)
[root@bolog ~]# usermod -G root test
[root@bolog ~]# id test
uid=1003(test) gid=1000(test) 组=1000(test),0(root)
主要组与附加组
主要组是每个用户唯一的组,而附加组可以有很多。当用户创建的新文件或目录,默认会归属于用户的主要组。
附加组的作用的是分享权限。
/etc/passwd内容解析
[root@bolog ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
test:x:1003:1000::/home/test:/bin/bash
<用户名>:<密码(x代替)>:<用户ID>:<组ID>:<注释>:<用户家目录>:<登录状态>
- 用户名:系统中唯一的用户登录名。
- 密码:通常存储为
x
,表示实际的加密密码存储在/etc/shadow
文件中。 - 用户ID (UID):用户的唯一标识号。0是
root
用户,1-99是系统保留用户,100-999是系统账号,1000及以上是普通用户。 - 组ID (GID):用户的主要组ID,通常在
/etc/group
文件中定义。 - 注释:用户的注释字段,可以包含用户的全名或其他描述信息。
- 用户家目录:用户登录后所在的目录,通常是
/home/username
。 - 登录状态:用户的默认登录shell,比如
/bin/bash
,可以是空字符串或指向某个程序(如/sbin/nologin
,表示该用户不能登录)。