2.3.2 用户管理

从登录Linux开始就要和Linux下的用户打交道,用户管理是Linux中非常基础和重要的部分,本节就将详细介绍用户管理的常用命令。

1.用户管理的高频命令

用户管理的高频命令包括useradd、id、passwd和su等,具体说明如下。

(1)创建用户——useradd (★★★★☆)

使用useradd创建普通用户user(如果要创建其他名字的普通用户,使用新的用户名替换user即可),命令如下所示,-m选项表示自动创建该用户的home目录。

如果能在/home目录下看到user子目录,则说明user的home目录已经创建成功。

(2)查看用户信息——id (★★★★☆)

使用id查看当前用户的信息,如下所示,会显示当前登录的用户信息,包括uid、gid、groups等信息。

使用id查看指定用户的信息,如下所示,在root用户下查看普通用户user的信息。

(3)设置/修改用户密码——passwd (★★★★☆)

使用passwd设置/修改user的密码,如下所示。

上述命令和参数说明如下。

如果不加用户名,直接运行passwd,将设置/修改当前用户的密码。

root用户可以设置/修改普通用户的密码,普通用户只能设置/修改自己的密码。

设置密码的时候,不会有回显。

(4)切换用户——su (★★★★★)

使用su将当前用户切换到指定的用户,例如将root用户切换到普通用户user,命令如下。

切换后用户名变成了user,当前目录为~,~表示当前用户user的home目录,即/home/user,用户提示符由#变成了$。

上述命令和参数说明如下。

su和user中间还有一个横杠(-),横杠同su、user之间都有空格,一定要注意,命令、参数和选项之间都要有空格。

横杠(-)表示将当前目录切换到指定用户的home目录,本例中指定的用户是user。如果不加横杠,直接运行su user,这样只会切换用户,不会切换当前目录。

如果su直接运行su命令,不加任何参数,则会切换到root用户。

(5)退出当前用户登录——exit (★★★★☆)

使用exit命令,可以退出当前用户登录,返回到之前的登录用户,如下所示。

使用〈Ctrl+D〉组合键同样可以退出当前登录。

(6)创建用户组——groupadd (★★★☆☆)

使用groupadd加上组名,可以创建用户组,如下所示,创建了admin用户组。

查看/etc/group文件,可以看到新建的admin组信息。

如果显示admin组信息,则说明admin组创建成功。

(7)为用户添加用户组——usermod (★★★★☆)

使用usermod为user用户添加一个新的用户组admin,并且不删除user原有的groups。这样可以使得user用户同时属于多个用户组。

上述命令和参数说明如下。

-a选项表示增加用户组。

-G选项表示增加用户组的同时,并不删除用户原来的groups。

admin是待添加的用户组。

user是用户名。

usermod可以使得用户同时属于多个用户组,从而扩大用户的权限。

例如Docker命令默认是在root用户下运行的,这样风险很大,可以将普通用户加入Docker的docker用户组,这样,普通用户就可以运行Docker命令,无须切换到root用户。

注意:可以使用gpasswd-d user admin移除user用户的用户组admin。

(8)修改用户的当前用户组——newgrp(★★☆☆☆)

使用newgrp将当前用户组user修改成admin,命令如下。

运行id命令查看user信息,可以看到当前用户组gid已经切换成admin。

要先切换到对应的用户,再来修改该用户的当前用户组。