1、添加、修改、删除用户账号
1)useradd命令——添加用户账号。
useradd [选项] 用户名
最简单的用法是,不添加任何选项.只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户账号。在CentOS系统中,使用useradd命令添加用户账号时主要完成以下几项任务。
- 在/etc/passwd文件和/etc / shadow文件的末尾增加该用户账号的记录.
- 若未明确指定用户的宿主目录.则在/home目录下自动创建与该用户账号同名的宿主目录.并在该目录中建立用户的各种初始配置文件.
- 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow文件中.
例如,执行以下操作可以创建名为 zhangsan的用户账号,并通过查看passwd、shadow文件和home目录来确认新增用户账号时的变化.
[root@node1 ~]# useradd zhangsan
[root@node1 ~]# tail -1 /etc/passwd
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
[root@node1 ~]# tail -1 /etc/shadow
zhangsan:!!:19881:0:99999:7:::
[root@node1 ~]# ls -A /home/zhangsan/
.bash_logout .bash_profile .bashrc .mozilla
如果结合useradd命令的各种选项.可以在添加用户账号的同时对UD号、宿主目录、登录Shell等相关属性进行指定。以下列出了useradd命令中用于设置账号属性的几个常见选项。
- -u:指定用户的UD号,要求该UD号码未被其他用户使用.
- -d:指定用户的宿主目录位置(当与-M一起使用时.不生效)。-
- -e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式.
- -g:指定用户的基本组名〈或使用GID号).
- -G:指定用户的附加组名(或使用GID号).
- -M:不建立宿主目录,即使/etc/login , defs系统配置中已设定要建立宿主目录。
- -s:指定用户的登录Shell.
上述的各个选项可以组合使用.例如,执行以下操作可以创建一个辅助管理员账号admin,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/ admin".
[root@node1 ~]# useradd -d /admin -g wheel -G root admin
在账号管理工作中.有时候会希望在新建账号的同时指定该账号的有效期限.或者要求新建的账号不能登录系统〈如仅用于访问FTP服务),这时可分别使用“-e”和“-s”选项。例如.执行以下操作可以创建一个名为b_down的FTP账号〈禁止终端登录),该账号将于2020-12-31失效,
[root@node1 ~]# useradd -e 2020-12-31 -s /sbin/nologin b_down
2)passwd命令——为用户账号设置密码
通过useradd 命令新增用户账号以后,还需要为其设置一个密码才可以正常使用。使用passwd命令可以设置或修改密码, root 用户有权管理其他账号的密码〈指定账号名称作为参数即可),例如,执行“posswd zhangsan”命令可为zhangsan账号设置登录密码.要根据提示重复输入两次,具体操作如下:
[root@node1 ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
用户账号具有可用的登录密码以后.就可以从字符终端进行登录了。虽然root用户可以指定用户名作为参数.对指定账号的密码进行管理.但是普通用户却只能执行单独的“passwd”命令修改自己的密码。
对于普通用户自行设置的密码,要求具有一定的复杂性(如不要直接使用英文单词,长度保持在六位以上),否则系统可能拒绝进行设置,普通用户设置自身的登录密码时.需要先输入旧的密码进行验证。例如,以下操作是用户zhangsan更改登录密码的过程.
[zhangsan@node1 ~]$ passwd
更改用户 zhangsan 的密码 。
为 zhangsan 更改 STRESS 密码。
(当前)UNIX 密码: ##输入旧密码
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
使用passwd命令除了可以修改账号的密码以外.还能够对用户账号进行锁定.解锁,也可以将用户的密码设置为空〈无须密码即可登录).与上述功能相关的几个选项如下所示。
- -d:清空指定用户的密码,仅使用用户名即可登录系统.
- -l:锁定用户账户.
- -s:查看用户账户的状态(是否被锁定).
- -u。解锁用户账户.
通过passwd 命令锁定的用户账号.将无法再登录系统〈shadow文件中的对应密码字串前将添加"!!”字符),只能由管理员来解除锁定。例如,以下操作分别用于锁定.解锁用户账号zhangsan。
[root@node1 ~]# passwd -l zhangsan ##锁定账号
锁定用户 zhangsan 的密码 。
passwd: 操作成功
[root@node1 ~]#
[root@node1 ~]# passwd -S zhangsan ##查看账号锁定状态
zhangsan LK 2024-06-07 0 99999 7 -1 (密码已被锁定。)
[root@node1 ~]#
[root@node1 ~]# passwd -u zhangsan ##解锁账号
解锁用户 zhangsan 的密码。
passwd: 操作成功
[root@node1 ~]#
[root@node1 ~]# passwd -S zhangsan
zhangsan PS 2024-06-07 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
3)usermod命令——修改用户账号属性
对于操作系统中已经存在的用户账号,可以使用usarmod命令重新设置各种属性。usermod命令同样需要指定账号名称作为参数。usermod命令中较常使用的几个选项如下所述.
- -u:修改用户的UID号。
- -d:修改用户的宿主目录位置。
- -e:修改用户的账户失效时间,可使用YYYY一MM一DD的日期格式。
- -g:修改用户的基本组名〈或使用GID号).
- -G:修改用户的附加组名(或使用GID号).
- -s:指定用户的登录Shell,
- -I:更改用户账号的登录名称〈Login Name) .
使用usermod命令时,其大部分的选项与useradd 命令的选项是对应的.作用也相似。除此以外,还有两个选项“-L”和“-U”,分别用于锁定.解锁用户账号,这两个选项与passwd命令的“-/”和"-u”选项的作用基本相同,但是存在大小写区别.
若要修改已有账号的宿主目录,需要先将该账号原有的宿主目录转移到新的位置,然后通过usermod命令设置新的宿主目录位置。例如,执行以下操作可以将admin用户的宿主目录由/admin转移至/hame/ admin.
[root@node1 ~]# mv /admin /home/
[root@node1 ~]# usermod -d /home/admin admin
通过usemod命令同样可以对账号进行锁定.解锁操作,经usermod命令锁定的账号也不能登录系统〈shadow文件中的对应密码字串前将添加“!”字符)。例如,以下操作分别用于锁定.解锁用户账号admin,但是在CentOS 7系统中,如果账户没有设置密码,那么该账户锁定后将无法使用"usermod -U”命令解锁。因此在锁定admin账户之前需要先为其设置账户密码。
[root@node1 ~]# passwd admin
更改用户 admin 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@node1 ~]#
[root@node1 ~]# usermod -L admin ##锁定账号
[root@node1 ~]#
[root@node1 ~]# passwd -s admin ##查看账号锁定状态
passwd:错误的参数 -s:未知的选项
[root@node1 ~]#
[root@node1 ~]# usermod -U admin ##解锁账号
若需要修改账号的登录名称,可以使用“-I”选项。例如.执行以下操作可以将admin 用户的登录名称更改为webmaster,下次登录时生效.
[root@node1 ~]# usermod -l webadmin admin
[root@node1 ~]# grep "admin" /etc/passwd
webadmin:x:1002:10::/home/admin:/bin/bash
4)userdel命令——删除用户账号
当操作系统中的某个用户账号不再使用时〈如该员工已经从公司离职等情况).可以使用userdel命令将该用户账号删除.使用该命令也需要指定账号名称作为参数,结合“一r”选项可同时删除宿主目录.例如,执行以下操作将删除名为zhangsan的用户账号,同时删除其宿主目录/home/zhangsan
[root@node1 ~]# userdel -r zhangsan
[root@node1 ~]# ll -d /home/zhansan ##确认宿主目录是否已删除
ls: 无法访问/home/zhansan: 没有那个文件或目录