Skip to content

用户管理

Linux 用户可以分为:超级用户(root)和普通用户。超级用户又被称为:根用户和特权用户,它拥有至高无上的权利。普通用户又被划分为管理用户和其它用户。管理用户即我们俗称的 sudoers,他们可以临时提升权限(使用sudo命令),安装Ubuntu过程中创建的用户默认就是 sudoers

查看所有用户

Linux系统下的所有用户,在 passwd 配置文件中都有一条相关记录。

bash
$ sudo cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
he:x:1000:1000:he,,,:/home/he:/bin/bash

每一行对应一条记录,每条记录有多个字段,字段之间以 : 分割。我们可以在5号手册中查看 passwd 文件的格式和规范:

bash
$ man 5 passwd
/etc/passwd 为每个用户账户包含一行,包含使用冒号 (“:”) 分隔的七个字段,分别是:
· 登录名
· 可选的加密后的密码
· 数字用户 ID
· 数字组 ID
· 用户名和注释字段
· 用户主目录
· 可选的用户命令解释器

添加用户

我们可以使用 useradd 命令来添加用户,格式如下:

shell
格式:
  useradd [选项] username
常用选项:
    -m, --create-home
      如果不存在,则创建用户主目录
    -s, --shell SHELL
      用户的登录 shell 名。

比如我们可以这样用:

bash
$ sudo useradd test1
# 这样创建的用户不会自动创建用户的家目录,默认的shell为sh

$ sudo useradd -m -s /bin/bash test2
# 这样创建的用户会自动创建用户的家目录,并可以指定使用哪个shell

删除用户

我们可以使用 userdel 命令来删除用户,格式如下:

shell
格式:
  userdel [选项] username
常用选项:
  -r, --remove
    用户主目录中的文件将随用户主目录和用户邮箱一起删除。

比如我们可以这样用:

bash
$ sudo userdel test1
# 这样删除用户,不会删除用户的家目录和用户的邮箱。

$ sudo userdel -r test2
# 这样删除用户,会把用户的家目录和用户的邮箱一起删除。

设置密码

我们可以使用 passwd 命令来给用户设置密码:

shell
$ man passwd
  passwd 命令用来更改用户账户的密码。普通用户通常只更改其自己账户的密码,而超级用户可以更改任何账户的密码。
格式:
  passwd [选项] [username]

比如我们可以这样用:

shell
$ sudo passwd test1
$ sudo passwd root

切换用户

我们可以使用 su(switch user) 命令切换到另一个用户,格式如下:

shell
格式:
  su [选项] [username]

比如我们可以这样用:

shell
$ sudo su
# 切换到root用户

$ sudo su test1
# 切换到test1用户

退出切换

exit 命令可以用来退出用户切换

shell
$ exit

使用 su 命令依次切换到多个用户时候,这些用户是使用栈结构来管理的。执行 su 命令相当于将用户压入栈顶,执行 exit 命令相当于将用户弹出栈顶。

注意:当用户在上述的栈结构中存在的时候,该用户是不能够被删除的。