【Linux】用户和组管理命令(一)
- useradd命令
使用useradd指令所建立的帐号,保存在/etc/passwd文本文件中
# useradd you
添加新用户 没有使用任何群组相关的参数,默认在创建用户时创建一个同名的群组
# useradd -r aa
创建一个系统账户 -r 创建一个系统账户
# useradd -d /home/you you
添加用户,指定组,并且设定主目录 -d 新账户的主目录
# useradd -e 20/1/2021 you
添加用户,并给用户设置有效期 -e 新账户的过期日期
# useradd you -u 777
新账户的用户,指定其ID -u 新账户的用户 ID 设定ID值时尽量要大于500,以免冲突。Linux安装后会建立一 些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号
# useradd you -g you -G root
-g 新账户主组的名称或ID -G 新账户的附加组列表 在/etc/passwd文件中,用户记录的GID所对应的组是这个用户的基本组 若/etc/group文件中某个其他组的成员也包括这个用户,那么这个组是 这个用户的附加组
# useradd -M -s /sbin/nologin you
不创建主目录,并且禁止登录 -M 不创建用户的主目录 -m 创建用户的主目录 -s 新账户的登录shell
# useradd -p 123456 you
创建用户的同时指定密码 -p 加密后的新账户密码
在Centos和Redhat中adduser是useradd的符号链接,所以adduser用法和useradd用法一样。-b 新账户的主目录的基目录 -c 新账户的 GECOS 字段 -D 显示或更改默认的useradd配置 -f 新账户的密码不活动期 -h 显示此帮助信息并推出 -k 使用此目录作为骨架目录 -K 不使用 /etc/login.defs 中的默认值 -l 不要将此用户添加到最近登录和登录失败数据库 -N 不创建同名的组,默认值为100,可以在配置文件中修改 -o 允许使用重复的 UID 创建用户 -R chroot到的目录 -s 新账户的登录 shell -U 创建与用户同名的组 -Z 为 SELinux 用户映射使用指定 SEUSER
- userdel命令
# userdel you
删除用户,但不删除其主目录及文件
# userdel -r you
删除用户的同时删除用户所有的文件和目录
# userdel -f you
强制删除用户
-R chroot到的目录 -Z 为用户删除所有的SELinux用户映射
- passwd命令
直接运行passwd命令修改当前的用户密码,对其他用户的密码操作需要管理员权限。
# passwd
修改当前登陆的账户密码
# passwd you
修改其他用户密码
# passwd -l you
锁定指定帐户的密码
# passwd -e you
下次登陆强制改密码
# passwd -d you
清除登录密码,清除之后登录时无需密码
# passwd -S you
查询帐号的密码状态
# passwd -x 100 -n 30 you
设置密码的最小和最大有效天数
-k 保持身份验证令牌不过期 -d 删除已命名帐号的密码(只有根用户才能进行此操作) -l 锁定指名帐户的密码(仅限 root 用户) -u 解锁指名账户的密码(仅限 root 用户) -e 终止指名帐户的密码(仅限 root 用户) -f 强制执行操作 -x 密码的最长有效时限(根用户) -n 密码的最短有效时限(根用户) -w 在密码过期前多少天开始提醒用户(根用户) -i 当密码过期后经过多少天该帐号会被禁用(根用户) -S 报告已命名帐号的密码状态(根用户)
- usermod命令
# usermod -d /home/you you
修改用户的主目录 -d 用户的新主目录
# usermod -u 777 you
改变用户的uid -u 用户帐号的新UID
# usermod -l you1 you
修改用户名为you1 -l 新的登录名称
# usermod -L you
锁定用户 -L 锁定用户帐号
# usermod -g 1016 you
修改用户的GID -g 强制使用GROUP为新主组
# usermod -e 2021-1-20 you
指定帐号过期日期 -e 设定帐户过期的日期
# usermod -f 3 you
指定用户帐号密码过期多少天后,禁用该帐号 -f 过期天数后,设定密码为失效状态
-c GECOS 字段的新值 -G 新的附加组列表 GROUPS -a 将用户追加至-G中提到的附加组中,并不从其它组中删除此用户 -h 显示帮助信息 -m 将主目录内容移至新位置 (仅于-d一起使用) -o 允许使用重复的(非唯一的) UID -p 将加密过的密码 (PASSWORD) 设为新密码 -R chroot到的目录 -s 该用户帐号的新登录 shell -U 解锁用户帐号 -Z 用户账户的新 SELinux 用户映射
- groupadd命令
# groupadd y1
添加一个用户组
# groupadd -g 777 y2
添加一个用户组,并指定GID
# groupadd -r -g 778 y3
-r 创建一个系统账户
# groupadd -o -r -g 778 y4
允许创建有重复GID的组 -o 允许创建有重复 GID 的组
# groupadd -p 123456 y5
为新组使用此加密过的密码
- groupdel命令
# groupdel y1
删除用户组
-h 显示帮助信息 -R chroot到的目录
- groupmod命令
# roupmod -g 7777 y5
更改用户组ID
# groupmod -n you y5
更改用户组名
# groupmod -p 123456 you
更改用户组密码
-g 将组 ID 改为 GID -h 显示帮助信息 -n 改名为 NEW_GROUP -o 允许使用重复的 GID -p 将密码更改为(加密过的) PASSWORD -R chroot到的目录
- gpasswd命令
Linux下工作组文件**/etc/group和/etc/gshadow**管理工具。
# gpasswd -a you y1
向组中添加用户
# gpasswd -d you y1
从组中删除用户
# gpasswd -r y1
移除组的密码
# gpasswd -A you y1
设置组的管理员列表
# gpasswd y1
给用户组创建密码
-a 向组 GROUP 中添加用户 USER -d 从组 GROUP 中添加或删除用户 -h 显示帮助信息 -Q 要chroot进的目录 -r 移除组的密码 -R 向其成员限制访问组 -M 设置组 GROUP 的成员列表 -A 设置组的管理员列表 除非使用 -A 或 -M 选项,不能结合使用这些选项。
- newgrp命令
以相同的帐号,另一个群组名称再次登入系统。使用newgrp指令切换群组必须是该群组的用户,否则将无法登入指定的群组。
# newgrp y1
将群组切换到y1组
- groups命令
输出指定用户所在组的组成员,每个用户属于/etc/passwd中指定的一个组和/etc/group中指定的其他组。
# groups
显示当前用户所属的组
# groups you
查看you所属的组
- chage命令
# chage -l you
-l 显示帐户年龄信息
# chage -M 90 you
-M 设置两次改变密码之间相距的最大天数
# chage -m 30 you
-m 设置两次改变密码之间相距的最小天数
# chage -d 0 you
强制用户登陆时修改口令 如果接数字的话是从1970年1月1日累加 接日期密码修改时间就变成所设定的日期 用命令chage -d 0 代表该用户需立即修改密码
# chage -E '2021-01-20' you
-E 设置帐户过期时间 默认时间是永远有效改成 chage -E -1 即可
# chage -I 5 you
-I 过期设定天数后,设定密码为失效状态
# chage -W 7 you
-W 设定密码过期前的提醒时间
-h 显示此帮助信息并推出 -l 显示帐户年龄信息 -R chroot到的目录
- id命令
# id
显示当前用户信息
# id -a
同其它版本兼容,作用与id命令相同
# id -G
显示用户所属附加组的ID
# id -g
显示用户所属群组的ID
# id root
显示指定用户的所有信息
# id -u
-u 显示用户ID
# id -ng
# id -nG
显示所属组的名字 显示用户所属附加组名字 -g 只显示组ID -G 只显示附加组 -n 对于-ugG显示名字而不是数值
- who命令
# who
显示当前已登录的用户信息
# who -a
显示目前登入系统的用户详细信息
# who -q
列出所有已登录用户的登录名与数量
# who -b
上次系统启动时间
# who -d
显示已结束的进程
# who -H
输出头部的标题列
# who -l
显示系统登录进程
# who -r
显示当前的运行级别
# who -u
列出已登录的用户
# who -aH
列出所有已登录用户的登录名与用户数量,并且显示头部的标题列
-l 显示系统登录进程;(lookup)尝试通过 DNS 查验主机名 -m 只面对和标准输入有直接交互的主机和用户 -p 显示由init进程衍生的活动进程 -s 只显示名称、线路和时间(默认) -T 用+,- 或 ? 标注用户消息状态 +:允许写信息 -:不允许写信息 ?:不能找到终端设备 -u 列出已登录的用户