Linux 系统的文件权限 (1) User Group Others

权限大致分为几类, root 用户, 标准用户 + sudo, 所有者, 所属用户组, 标准用户.

其中 普通用户 + sudo 就是提升用户的权限到 root, 两者几乎相同. 用于系统的维护和管理,对系统所有资源具有访问权限. 因为直接使用 root 权限过大,甚至可以删除系统文件致使系统瘫痪,所以不推荐直接使用 root, 而是使用 home 目录下的 标准用户 + sudo 的方式实现.

切换用户 su - [用户名], - 表示切换到 home 目录, 用户名默认 root.

创建标准用户和用户组

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建删除用户组
sudo groupadd 组名
sudo groupdel 组名

# 创建删除用户, 不指定 -g 则创建同名组
sudo useradd [-m 创建home目录 -g 指定所属组] 用户名
sudo userdel [-r 删除home目录] 用户名

# 设置密码
sudo passwd 更改密码的用户名

# 管理组中用户
sudo gpasswd [-a 添加的用户名/-d 删除的用户名] 组名

其中标准用户的 home 目录默认权限 755. root 用户的 /root 路径权限为 700.

查看当前用户, 所属组信息

组信息在 /etc/group 中, “行号 组名:密码位:组 id:组中的用户列表”

用户信息在 /etc/passwd 中, “行号 用户名:密码位:UID:GID:说明信息:home 目录位置:登录时使用的 shell 软件”,
其中 UID 0:超级用户, 1499:系统用户, 50065535:普通用户

使用命令 id, who, whoami, w 快速查看

查看用户组, 附属组

用户默认组是和用户同名的组, 或者是通过初始化用户的时候 -g 指定的组, 每个用户 1 个.
用户的附属组默认是没有的, 是通过 -G 指定的组, 可以指定多个附属组.

1
2
3
4
$ cat /etc/group | grep ops
adm:x:4:ops
ops:x:1000:
docker:x:994:ops,root

可以看到, 当前用户 ops 用户组为 ops:x:1000:, 所在的附属组为 adm 和 docker. 其中 docker 组下还有 root 用户.

使用命令 id ops 查看用户 uid 和 gid, 以及 附属组信息

更改文件或文件夹的所属用户和所属用户组

1
2
3
4
# 修改文件或文件夹的所属用户, 可以同时修改用户组
chown [-R] 用户[:用户组] 文件/文件夹
# 修改文件或文件夹的所属用户组
chgrp [-R] 用户组 文件/文件夹

使用 -R 表示操作文件夹时级联操作

参考文档

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.