11、Linux 密码管理
Linux 会根据用户的密码,来确认用户的身份。Linux 的用户账号与群组账号都可设置密码。用户账号的密码用来验证用户的身份;而群组账号的密码则是用来确认用户是否为该群组的成员,以及确认是否为该群组的管理者。
在 Linux 中,使用 useradd 新建一个用户账号时,useradd 会锁定用户的密码,如此一来,用户暂时不能使用 。你必须要修改其密码后,新建的用户才能用他的账号登录。要修改用户账号的密码需要使用 passwd 命令。
1、password 命令
命令选项
- -d 删除用户密码,亦即把文件中的密码字段清空。
- -l 这个参数用来锁定账号,账号一经锁定,用户再怎样输入密码,都会被判断为错误。这个参数只能由 root 使用,普通用户无法用来锁定自己的账号。
- -u 解锁用户
password 除了可以修改用户账号的密码外,你也可以为每一个群组设置一个密码,这个密码称为群组密码(Group Password)。Linux 的用户,可以通过 newgrp 暂时修改其主要群组的身份。执行 newgrp 时,会以指定的群组身份,开启一个登录 Shell,这样就可以获得暂时修改主要群组之功效。此时,如果该群组没有指定密码,那么 Linux 只允许群组的成员可以使用 newgrp 修改主要群组的身份;如果群组设置了密码,群组成员仍可以不用密码就可切换主要群组身份,但非群组的成员,则必须要提供正确的密码才行。
2、gpassword 命令
命令选项
- -r 用来删除群组的密码。
- -R 锁定 GROUP 的群组密码。
- -A 设置组管理员
- -a 添加组成员到组
- -d 从组中 删除组成员
命令用法:指派群组管理员,如果有多个管理员用“,”分隔,如果想删除群组管理员,保持位置为空
实例:创建组 admin,
- 1)设置 test1 为 admin 组管理员,
- 2)使用 test1 用户,将 test2,test3 加入 admin组
- 3)从 admin 组中删除 test3
# 创建用户 test1 test2 test3 组 admin
[root@long90 home]# groupadd admin
[root@long90 home]# useradd test1
[root@long90 home]# useradd test2
[root@long90 home]# useradd test3
# 设置组 admin 的管理员 test1
[root@long90 home]# gpasswd -A test1 admin
[root@long90 home]# su - test1
# 使用 test1 ,将test2,test3 加入 admin
[test1@long90 ~]$ gpasswd -a test2 admin
正在将用户test2”加入到“admin”组中
[test1@long90 ~]$ gpasswd -a test3 admin
正在将用户“test3”加入到“admin”组中
[test1@long90 ~]$ gpasswd -d test3 admin
正在将用户“test3”从“admin”组中删除
[test1@long90 ~]$ exit
# 注销
[root@long90 home]# su - test1 -c "gpasswd -a test3 admin"
正在将用户“test3”加入到“admin”组中