4.3 任务3 管理用户账户
用户账户管理包括新建用户、设置用户账户口令和用户账户维护等内容。
4.3.1 子任务1 用户切换
在某些情况下,已经登录的用户需要改变身份,即进行用户切换,以执行当前用户权限之外的操作。这时可以用下述方法实现。
(1)注销后重新进入系统。在GNOME桌面环境中单击左上角的“系统”按钮,执行“注销”命令,如图4-1所示。这时屏幕上会出现“确认”对话框,单击“注销”按钮后出现新的登录界面,输入新的用户账号及密码,即可重新进入系统。
图4-1 GNOME桌面环境
(2)运行su命令进行用户切换。Linux操作系统提供了虚拟控制台功能,即在同一物理控制台实现多用户同时登录和同时使用该系统。使用者可以充分利用这种功能进行用户切换。su命令可以使用户方便地进行切换,不需要用户进行注销操作就可以完成用户切换。要升级为超级用户(root),只需在提示符$下输入su,按屏幕提示输入超级用户(root)的密码,即可切换成超级用户。依次单击左上角的“应用程序”→“附件”→“终端”,进入终端控制台,然后在终端控制台输入以下命令。
[root@RHEL6~]# whoami root [root@RHEL6~]# su user1 //root用户转换为任何用户都不需要口令 [user1@RHEL6 root]$whoami User1 [user1@RHEL6 root]$su root //普通用户转换为任何用户都需要提供口令 Password: [user1@RHEL6 root]$exit //使用exit命令可退回到上一次使用su命令时的用户 exit [root@RHEL6~]# whoami root
su命令不指定用户名时将从当前用户转换为root用户,但需要输入root用户的口令。
4.3.2 子任务2 新建用户
在系统新建用户可以使用useradd或者adduser命令。useradd命令的格式为:
useradd [选项] <username>
useradd命令有很多选项,如表4-4所示。
表4-4 useradd命令选项
【例4-1】 新建用户user1, UID为510,指定其所属的私有组为group1(group1组的标识符为500),用户的主目录为/home/user1,用户的shell为/bin/bash,用户的密码为123456,账户永不过期。
[root@RHEL6~]# useradd-u 510-g 500-d/home/user1-s/bin/bash-p 123456-f-1 user1 [root@RHEL6~]# tail -1 /etc/passwd user1:x:510:500::/home/user1:/bin/bash
如果新建用户已经存在,那么在执行useradd命令时,系统会提示该用户已经存在:
[root@RHEL6~]# useradd user1 useradd: user user1 exists
4.3.3 子任务3 设置用户账户口令
1.passwd命令
指定和修改用户账户口令的命令是passwd。超级用户可以为自己和其他用户设置口令,而普通用户只能为自己设置口令。passwd命令的格式:
passwd [选项] [username]
passwd命令的常用选项如表4-5所示。
表4-5 passwd命令选项
【例4-2】 假设当前用户为root,则下面的两个命令分别为root用户修改自己的口令和root用户修改user1用户的口令。
//root用户修改自己的口令,直接用passwd命令回车即可 [root@RHEL6~]# passwd Changing password for user root. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. //root用户修改user1用户的口令 [root@RHEL6~]# passwd user1 Changing password for user user1. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
需要注意的是,普通用户修改口令时,passwd命令会首先询问原来的口令,只有验证通过才可以修改。而root用户为用户指定口令时,不需要知道原来的口令。为了系统安全,用户应选择包含字母、数字和特殊符号组合的复杂口令,且口令长度应至少为6个字符。
2.chage命令
要修改用户账户口令,也可以用chage命令实现。chage命令的常用选项如表4-6所示。
表4-6 chage命令选项
【例4-3】 设置user1用户的最短口令存活期为6天,最长口令存活期为60天,口令到期前5天提醒用户修改口令。设置完成后查看各属性值。
[root@RHEL6~]#chage -m 6-M 60-W 5 user1 [root@RHEL6~]#chage -l user1 Minimum: 6 Maximum: 60 Warning: 5 Inactive: -1 Last Change: 9月01, 2007 Password Expires: 10月31, 2007 Password Inactive: Never Account Expires: Never
4.3.4 子任务4 维护用户账户
1.修改用户账户
管理员用useradd命令创建好账户之后,可以用usermod命令来修改useradd的设置。两者的用法几乎相同。例如,要修改用户user1的主目录为/var/user1,把启动shell修改为/bin/tcsh,可以用如下操作。
[root@RHEL6~]# usermod -d /var/user1-s /bin/tcsh user1 [root@RHEL6~]# tail -l /etc/passwd user1:x:510:500::/var/user1:/bin/tcsh
2.禁用和恢复用户账户
有时需要临时禁用一个账户而不删除它。禁用用户账户可以用passwd或usermod命令实现,也可以直接修改/etc/passwd或/etc/shadow文件实现。
例如,暂时禁用和恢复user1账户,可以使用以下三种方法实现。
(1)使用passwd命令。
//使用passwd命令禁用user1账户,利用tail命令查看可以看到被锁定的账户密码栏前面会加上 [root@RHEL6~]# passwd -l user1 [root@RHEL6~]# tail -1 /etc/shadow user1:! ! $1$mEK/kTgb$ZJI3cdfeSD/rsjOXC5sX.0:13757:6:60:5::: //利用passwd命令的-u选项解除账户锁定,重新启用user1账户 [root@RHEL6~]# passwd -u user1 Unlocking password for user user1 passwd: Success
(2)使用usermod命令。
//禁用user1账户 [root@RHEL6~]# usermod -L user1 //解除user1账户的锁定 [root@RHEL6~]# usermod -U user1
(3)直接修改用户账户配置文件。
可将/etc/passwd文件或/etc/shadow文件中关于user1账户的passwd域的第一个字符前面加上一个“*”,达到禁用账户的目的,在需要恢复的时候只要删除字符“*”即可。
如果只是禁止用户账户登录系统,可以将其启动shell设置为/bin/false或者/dev/null。
3.删除用户账户
要删除一个账户,可以直接编辑删除/etc/passwd和/etc/shadow文件中要删除的用户所对应的行,或者用userdel命令删除。userdel命令的格式为:
userdel [-r] 用户名
如果不加-r选项,userdel命令会在系统中所有与账户有关的文件中(例如/etc/passwd, /etc/shadow, /etc/group)将用户的信息全部删除。
如果加-r选项,则在删除用户账户的同时,还将用户主目录以及其下的所有文件和目录全部删除掉。另外,如果用户使用e-mail,同时也将/var/spool/mail目录下的用户文件删掉。