【Linux】常用命令 拥有者和权限(四)
常用命令 拥有者和权限
- 1. Linux 中的文件拥有者与权限概念
- 1.1 权限类型
- 1.2 权限表示方法
- 1.3 常用命令
- 1.4 改变权限
- chmod(change mode)
- 1.5 改变拥有者
- 1.6 查询当前登录用户所属组
- 1.7 示例组合
- 2. chgrp 命令
- 2.1 基本语法
- 2.1.1 修改单个文件的所属组
- 2.1.2 修改目录及其所有子文件的所属组
- 2.1.3 批量修改多个文件
- 2.2 日常使用场景
1. Linux 中的文件拥有者与权限概念
在Linux中,每个文件和目录都有 拥有者(owner)、所属组(group) 和 权限(permissions)。
- 拥有者(User/Owner):创建文件的用户。可以对文件有读、写、执行权限。
- 所属组(Group):文件属于某个组,组里的其他用户可以根据组权限访问。
- 其他人(Others):不属于文件拥有者也不属于文件所属组的用户。
1.1 权限类型
权限 | 字母 | 含义 |
---|---|---|
读 | r | 可以查看文件内容,或列出目录内容 |
写 | w | 可以修改文件内容,或在目录内创建/删除文件 |
执行 | x | 可以执行文件(脚本/程序),或进入目录 |
权限分三组:
1.用户权限(User / u):文件拥有者的权限
2.组权限(Group / g):文件所属组的权限
3.其他人权限(Others / o):其他人的权限
示例:
-rwxr-xr--
解释:
- 第一个 -:表示这是普通文件(d 表示目录)
- rwx:拥有者可以读、写、执行
- r-x:所属组可以读和执行,但不能写
- r–:其他人只能读
1.2 权限表示方法
Linux 支持两种方式表示权限:
-
符号法:如
rwxr-xr--
-
数字法(八进制):如 754
-
r = 4, w = 2, x = 1
-
分别对用户、组、其他人求和:
- rwx = 4+2+1 = 7
- r-x = 4+0+1 = 5
- r-- = 4+0+0 = 4
-
所以 -rwxr-xr-- → 754
-
1.3 常用命令
查看文件权限
ls -l
示例输出
-rw-r--r-- 1 user1 group1 1024 Aug 27 14:00 file.txt
-rw-r--r--
:权限- 1:硬链接数
- user1:文件拥有者
- group1:所属组
- 1024:文件大小(字节)
- Aug 27 14:00:最后修改时间
- file.txt:文件名
1.4 改变权限
chmod(change mode)
符号法chmod u+x file.txt # 给拥有者增加执行权限
chmod g-w file.txt # 去掉组的写权限
chmod o=r file.txt # 其他人只有读权限
数字法chmod 755 file.txt # 用户:rwx, 组:r-x, 其他人:r-x
chmod 644 file.txt # 用户:rw-, 组:r--, 其他人:r--
1.5 改变拥有者
chown
chown user2 file.txt # 改变文件拥有者为 user2
chown user2:group2 file.txt # 改变拥有者和所属组
chgrp(change group)
chgrp group2 file.txt # 仅改变所属组
1.6 查询当前登录用户所属组
方法1:
groups
输出示例:
user1 : user1 wheel docker
方法2:
id
输出示例:
uid=1000(user1) gid=1000(user1) groups=1000(user1),10(wheel),992(docker)
1.7 示例组合
# 查看文件
ls -l file.txt
# 修改权限
chmod 750 file.txt
# 修改拥有者和组
chown alice:staff file.txt
# 验证修改
ls -l file.txt
2. chgrp 命令
chgrp(change group)
用于改变文件或目录的所属组。
因为Linux文件系统中每个文件都有拥有者和所属组,而 chgrp 就是修改 所属组的工具。
2.1 基本语法
chgrp [选项] <新组名> <文件或目录>
常用选项:
- -R:递归修改目录下所有文件/子目录的组
- -v:显示处理信息(verbose)
- -c:只显示实际修改过的文件
2.1.1 修改单个文件的所属组
把 project.txt 的组改为 developers
chgrp developers project.txt
配合 ls -l 查看结果
ls -l project.txt# 修改前
-rw-r--r-- 1 alice users 1024 Aug 27 15:00 project.txt# 修改后
-rw-r--r-- 1 alice developers 1024 Aug 27 15:00 project.txt
2.1.2 修改目录及其所有子文件的所属组
把 /opt/app 目录以及其下所有文件/目录的所属组改为 staff
chgrp -R staff /opt/app
2.1.3 批量修改多个文件
chgrp dev file1 file2 file3
2.2 日常使用场景
在日常开发和运维中,chgrp
常用于团队协作和权限控制:
✅ 场景 1:多人共享目录
-
比如 /var/www/html 目录要给前端组(frontend)和后端组(backend)共同使用。
-
做法:
chgrp -R frontend /var/www/html# 给文件/目录的 所属用户组 增加读写权限
chmod -R g+rw /var/www/html
✅ 场景 2:部署应用
部署在 /opt/app 下的应用,默认属组可能是 root。
运维人员通常会修改为应用运行组,比如:
chgrp -R tomcat /opt/app
✅ 场景 3:日志共享
- 多个服务需要写同一份日志文件。
- 通常会把日志文件目录的组改成 loggroup
chgrp -R loggroup /var/log/myapp
chmod -R g+rw /var/log/myapp