用户与权限管理
用户与权限管理
Linux 是多用户系统,用户和权限管理是它的核心概念之一。这一篇我们来学习如何管理用户、组和文件权限。
用户和权限的基本概念
用户
在 Linux 系统中,不论本机还是远程登录,每个用户都必须拥有一个账号,并且对不同的系统资源拥有不同的使用权限。Linux 可以指定每一个用户针对不同文件或目录的不同权限。
对文件/目录的权限包括三种:
| 权限 | 英文 | 缩写 | 数字代号 |
|---|---|---|---|
| 读 | read | r | 4 |
| 写 | write | w | 2 |
| 执行 | execute | x | 1 |
组
为了方便用户管理,Linux 提出了「组」的概念。可以预先针对组设置好权限,然后把不同的用户添加到对应的组中,就不用依次为每个用户设置权限了。
超级用户 root
Linux 系统中的 root 账号通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限。在大多数版本的 Linux 中,都不推荐直接使用 root 账号登录系统。
安装 Linux 时,系统会自动创建一个用户账号,这个默认用户称为「标准用户」。
sudo
su是 substitute user 的缩写,表示使用另一个用户的身份sudo命令用来以其他身份执行命令,预设身份为 root- 用户使用
sudo时,必须先输入密码,之后有 5 分钟的有效期限
若未经授权的用户企图使用
sudo,系统会发出警告邮件给管理员。
组管理命令
创建组、删除组的命令都需要通过
sudo执行。
| 命令 | 作用 |
|---|---|
groupadd 组名 |
添加组 |
groupdel 组名 |
删除组 |
cat /etc/group |
确认组信息 |
chgrp -R 组名 文件/目录名 |
递归修改文件/目录的所属组 |
组信息保存在
/etc/group文件中。/etc目录是专门保存系统配置信息的目录。
用户管理命令
创建用户、删除用户、修改其他用户密码的命令都需要通过
sudo执行。
创建用户、设置密码、删除用户
| 命令 | 作用 | 说明 |
|---|---|---|
useradd -m -g 组 新建用户名 |
添加新用户 | -m 自动建立用户家目录;-g 指定用户所在组 |
passwd 用户名 |
设置用户密码 | 普通用户直接用 passwd 修改自己的密码 |
userdel -r 用户名 |
删除用户 | -r 选项自动删除用户家目录 |
cat /etc/passwd | grep 用户名 |
确认用户信息 | 用户信息保存在 /etc/passwd 文件中 |
提示
- 创建用户时如果忘记加
-m选项,最简单的方法是删除用户重新创建- 创建用户时默认会创建一个和用户名同名的组
- 用户信息保存在
/etc/passwd文件中
查看用户信息
| 命令 | 作用 |
|---|---|
id [用户名] |
查看用户 UID 和 GID 信息 |
who |
查看当前所有登录的用户列表 |
whoami |
查看当前登录用户的账户名 |
passwd 文件
/etc/passwd 文件存放用户信息,由 7 个字段组成:
- 用户名
- 密码(x,表示加密的密码)
- UID(用户标识)
- GID(组标识)
- 用户全名或本地账号
- 家目录
- 登录使用的 Shell
usermod 修改用户
usermod 可以设置用户的主组、附加组和登录 Shell。
1 | # 修改用户的主组 |
注意:默认使用
useradd添加的用户没有权限使用sudo,可以用以下命令将用户添加到 sudo 附加组:
1 usermod -G sudo 用户名
which 查看命令位置
which 命令可以查看执行命令所在的位置:
1 | $ which ls |
cd命令是内置在系统内核中的,没有独立文件,因此用which无法找到它。
切换用户
| 命令 | 作用 |
|---|---|
su - 用户名 |
切换用户,并且切换目录 |
exit |
退出当前登录账户 |
su 不接用户名可以切换到 root,但不推荐,因为不安全。
修改文件权限
| 命令 | 作用 |
|---|---|
chown |
修改拥有者 |
chgrp |
修改组 |
chmod |
修改权限 |
命令格式:
1 | # 修改文件/目录的拥有者 |
chmod 数字表示法
chmod 设置权限时,可以用三个数字分别对应拥有者、组和其他用户的权限。每个数字是 r(4)、w(2)、x(1) 的和。
常见数字组合(u 表示用户,g 表示组,o 表示其他):
777===>u=rwx, g=rwx, o=rwx(所有人完全权限)755===>u=rwx, g=rx, o=rx(拥有者可读写执行,其他人只读执行)644===>u=rw, g=r, o=r(拥有者可读写,其他人只读)
理解权限数字
比如
755:第一个 7 是拥有者权限(4+2+1=7,即 rwx),第二个 5 是组权限(4+1=5,即 rx),第三个 5 是其他用户权限(rx)。这是最常见的文件权限设置。
chmod 符号表示法
也可以直接用符号修改:
1 | chmod +/-rwx 文件名|目录名 |
这种方式会一次性修改拥有者、组权限,但不能精确到某个对象。
小结
这一篇我们学习了用户、组和权限管理。下一篇学习系统信息查看命令。
上一篇:远程管理与 SSH
下一篇:系统信息与进程管理