目录
一. 用户管理
1.userdel
删除用户账户和相关文件
语法:
userdel [选项] 用户名
例:
user1:x:45678:45678::/home/user1:/bin/bash
user4:x:45681:45681::/home/user4:/bin/tcsh
user5:x:45682:45682::/home/user5:/bin/bash
[root@bogon ~]# userdel user4
[root@bogon ~]# userdel user5
[root@bogon ~]# cat /etc/passwd
user1:x:45678:45678::/home/user1:/bin/bash
注意:这个命令会将用户时生成的同名组一并删除,如果组里有其它成员,则无法删除
选项
-r 用户主目录中的文件将随用户主目录和用户邮箱一起删除。
userdel -r user7
2.passwd命令
更改用户的密码。root用户使用时,可以更改所有用户的密码。普通用户使用时,只能更改本身的密码
语法:
passwd [选项] 用户名
例:
[root@bogon home]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@bogon home]# tail -1 /etc/shadow
user1:$6$faHx9Nk5$uvzH6MjVkxap6DYntYzKhcuP0xB6FgvFjjqwvDu8tZZ7jTgqtbJjcsQdKCpgZoueMSZr167S3OhQ12bh6uSgT0:20223:0:99999:7:::
注意:passwd只能接受标准输出密码
选项
--stdin 非交互式修改密码,让passwd可以非标准的情况设置密码
[root@bogon ~]# echo 1 | passwd --stdin user2
更改用户 user2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@bogon ~]# !ta
tail -1 /etc/shadow
user2:$6$h3igOWgE$pmvUDDP.XAu2dEmQUYoNDdRVb8kjeqZFVL6G2FmzzePkrnzLMik.3r7ZBVTK4UoFBHtrAK7XaHf8jA8pbS.tw0:20223:0:99999:7:::
-d -delete 清除密码
[root@bogon ~]# passwd -d user2
清除用户的密码 user2。
passwd: 操作成功
[root@bogon ~]# !ta
tail -1 /etc/shadow
-S 查看密码的锁定状态
[root@bogon ~]# passwd -S user2
user2 NP 2025-05-15 0 99999 7 -1 (密码为空。)
[root@bogon ~]# passwd -S user1
user1 PS 2025-05-15 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
-l 锁定用户密码
[root@bogon ~]# passwd -l user1
锁定用户 user1 的密码 。
passwd: 操作成功
3.usermod命令
修改一个用户账户的属性
语法:
usermod [选项] 用户名
选项
选项 | 作用 |
---|---|
-u | 修改用户的UID |
-d | 修改用户的家目录 |
-s | 修改用户的登录shell |
-g | 修改用户基本组,不会创建用户的同名组 |
-G | 修改用户附加组,依然会创建同名组 |
-e | 修改用户的失效时间 |
-a | 追加用户到一个附加组 |
-a
[root@bogon ~]# usermod -a user2 -G user1
[root@bogon ~]# id user2
uid=1004(user2) gid=1004(user2) 组=1004(user2),1003(user1)
-g
[root@bogon ~]# usermod -g user3 user2
[root@bogon ~]# id user3
uid=1005(user3) gid=1005(user3) 组=1005(user3)
[root@bogon ~]# id user2
uid=1004(user2) gid=1005(user3) 组=1005(user3),1003(user1)
4.chpasswd命令
批量更新密码
语法
chpasswd [选项]
案例
[root@bogon ~]# vim chpasswd.txt
[root@bogon ~]# cat chpasswd.txt | chpasswd
[root@bogon ~]# tail -3 /etc/shadow
user1:$6$16dkh/gSQxoxJ3$Klhj8TXi325equZJDRc1x81EU3yQeUhZtkf53wcc2ivInog5jbFddOMmdH.MR3fZjM14AZUYxL5oHtzm4k0jh0:20223:0:99999:7:::
user2:$6$ZrhFE/zhQNc$nxCbBjDEwI51r6c4NZ9Dtry5604M9WU6hWsvcetE71V6zBJnojFy3quzmKCPsCoSp1XUYjIc2NQX7OcJ6lsMo/:20223:0:99999:7:::
user3:$6$0gvrq/jjrA/y7R$pzSjlKgBuJId8Df6At5dpfSwchlutsamGua1wc4oG2W2HTmVyyjUvm0vwiY3psi6vuTJ30VIp8tc1AOVg8Hwi.:20223:0:99999:7:::
5.chage命令
更改用户密码过期信息
语法
chage [选项] 用户名
选项
选项 | 作用 |
---|---|
-l | 显示账户年龄信息 |
-m | 修改密码的最短使用期限 |
-M | 修改密码的最长使用期限 |
-W | 修改密码过期的提示时间 |
例:
-l
[root@bogon ~]# chage -l user1
最近一次密码修改时间 :5月 15, 2025
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
-m
[root@bogon ~]# chage -m 1 user1
[root@bogon ~]# chage -l user1
最近一次密码修改时间 :5月 15, 2025
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :1
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
-M
[root@bogon ~]# chage -M 100 user1
[root@bogon ~]# chage -l user1
最近一次密码修改时间 :5月 15, 2025
密码过期时间 :8月 23, 2025
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :1
两次改变密码之间相距的最大天数 :100
在密码过期之前警告的天数 :7
-w
[root@bogon ~]# chage -W 2 user1
[root@bogon ~]# chage -l user1
最近一次密码修改时间 :5月 15, 2025
密码过期时间 :8月 23, 2025
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :1
两次改变密码之间相距的最大天数 :100
在密码过期之前警告的天数 :2
三.组管理
1.groupadd命令
创建新组
语法:
groupadd [选项] 组名
选项:
选项 | 作用 |
---|---|
-g, --gid GID | 指定 GID |
[root@bogon ~]# groupadd g1
[root@bogon ~]# tail -1 /etc/group
g1:x:1006:
-g
[root@bogon ~]# groupadd -g 12345 g2
[root@bogon ~]# tail -1 /etc/group
g2:x:12345:
2.groupdel命令
删除组
语法:
groupdel [选项] 组名
选项:
选项 | 作用 |
---|---|
-f | 强制删除,但不建议 |
案例:
删除组
[root@localhost ~]# groupdel newgroup
3.groupmod命令
语法:
groupmod [选项] 组名
选项:
选项 | 作用 |
---|---|
-g, --gid GID | 修改GID |
4.gpasswd命令
项组内添加成员
语法:
gpasswd [选项] 组名
选项:
选项 | 作用 |
---|---|
-a, --add USER | 向组 GROUP 中添加用户 USER,单个添加 |
-M, --members USER,... | 设置组 GROUP 的成员列表,批量添加,覆盖原有成员 |
案例
-a
[root@bogon ~]# gpasswd -a user3 user1
正在将用户“user3”加入到“user1”组中
-M
[root@bogon ~]# gpasswd -M user4,user5 user1
四.用户切换与sudo提权
1.su命令
切换用户,从root用户切换到普通用户不需要密码。普通用户之间切换需要密码。
语法:
su [-] 用户名
选项:
选项 | 作用 |
---|---|
-, -l, --login | 切换目录用户的登录shell |
-s | 指定shell切换 |
案例
-l
[root@bogon ~]# su - shanshan
上一次登录:四 5月 8 11:00:39 CST 2025:1 上
[shanshan@bogon ~]$ pwd
/home/shanshan
-s
[root@bogon ~]# useradd -s /sbin/nologin httpd
[root@bogon ~]# su -s /bin/bash httpd
[httpd@bogon root]$ cd
2.sudo命令
sudo用来进行普通用户提升权限
语法:
sudo [选项] 参数
选项:
选项 | 作用 |
---|---|
-i | 切换到指定用户的登录shell。采用本身的密码提供验证。 |
注意:sudo -i root,切换到root,必须存在于sudoers文件中的普通用户才有权限。
五.用户登录信息查看
1.ID命令
查看用户的基本属性,用户UID,基本组及附加组
id [OPTION]... [USER]
2.w命令
查看当前登录系统详情
语法
w [options]
选项
选项 | 作用 |
---|---|
-h | 不显示表头 |
3.who命令
显示当前系统登录的摘要信息
语法:
who
选项:
选项 | 作用 |
---|---|
-b, --boot | 上次系统启动时间 |
-u, --users | 列出已登录的用户 |
4.whoami命令
显示当前登录用户的名称
语法:
whoami
5.finger命令
查看用户登录信息,默认系统不存在该命令,需要安装
[root@localhost ~]# yum install -y finger
语法:
finger
6.last命令
last命令可以查看登录用户列表,last命令实际上从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表。此命令普通用户也可以执行。
语法:
last
7.lastb命令
lastb命令可以从日志文件/var/log/btmp中读取信息,并显示用户登录失败的记录用于发现系统登录异常。此命令要求root用户才可以执行,lastb可用参数与last命令参数相同。
语法:
last
8.lastlog命令
统计当前系统中存在用户的登录情况
语法:
lastlog