Linux 目录权限那些事儿

系统 Linux
在 Linux 的世界里,权限管理像一个古老的仪式,为文件和目录筑起坚实的防护墙。今天我们就来一起领略 Linux 目录权限的奥秘!

在 Linux 的世界里,权限管理像一个古老的仪式,为文件和目录筑起坚实的防护墙。今天我们就来一起领略 Linux 目录权限的奥秘!

一、Linux 权限的基础概念

在 Linux 系统中,所有文件和目录都遵循一套权限规则。这些规则控制谁可以读(Read)、写(Write)或执行(Execute)文件。这听起来简单,但其实背后有一整套体系。

1. 权限的三种身份

Linux 把用户分为三类,每类用户对文件/目录的权限可以单独设定:

  • 所有者(Owner):文件的创建者,一般默认是文件的所有者。
  • 所属组(Group):一群用户组成的组,文件可以属于某个组。
  • 其他用户(Others):所有不属于上述两类的用户。

2. 权限的三种操作

文件和目录都有以下三种权限:

读权限(r)

  • 文件:可以查看文件内容。
  • 目录:可以列出目录中的文件。

写权限(w)

  • 文件:可以修改文件内容。
  • 目录:可以添加、删除、重命名目录内的文件。

执行权限(x)

  • 文件:可以运行文件(如脚本)。
  • 目录:可以进入目录。

3. 权限的表示方法

权限用 rwx 这三个字母表示。例如,一个文件的权限是 -rw-r--r--,它可以分解为:

  • 第一个字符:- 表示普通文件,d 表示目录,l 表示符号链接等。
  • 后面的 9 个字符:分成三组,每组三个,分别表示 所有者所属组 和 其他用户 的权限。

权限也可以用八进制表示:

  • r = 4
  • w = 2
  • x = 1
  • 没有权限 = 0

例如,rw- 就是 4 + 2 = 6,所以 -rw-r--r-- 可以写成 644。

二、常见的目录权限操作

1. 查看权限:ls -l

最基本的操作就是看看权限长什么样。运行以下命令:

ls -l

输出示例:

-rw-r--r--  1 user group  1024 Nov 16  example.txt

这里你能看到权限信息、文件所有者、所属组、文件大小和修改时间。

2. 修改权限:chmod

chmod 是修改文件权限的主力工具,有两种使用方法:符号法和数字法。

符号法

chmod u+x example.sh  # 给文件所有者增加执行权限
chmod g-w example.sh  # 移除所属组的写权限
chmod o+r example.sh  # 允许其他用户读取文件

数字法

chmod 755 example.sh  # 设置文件权限为 -rwxr-xr-x
chmod 644 example.txt # 设置文件权限为 -rw-r--r--

注意:数字法适合批量操作,但符号法更直观!

3. 修改所有者和组:chown 和 chgrp

修改所有者

chown new_owner example.txt

修改所属组

chgrp new_group example.txt

同时修改所有者和组

chown new_owner:new_group example.txt

如果你想递归修改整个目录及其子目录的所有者/组,加上 -R 参数:

chown -R new_owner:new_group /path/to/directory

4. 默认权限:umask

每次新建文件或目录时,系统会根据默认的 umask 设置权限。可以查看当前的 umask:

umask

  • 输出可能是 0022,它会限制其他用户的写权限。
  • 可以修改 umask 来影响新建文件的权限:
  • umask 0007 # 让其他用户完全没有权限

三、有趣的权限用例

1. 限制目录访问:chmod 700

如果你有一个私密文件夹,不想让其他人窥探你的小秘密,可以这样做:

chmod 700 my_secret_folde

这将确保只有你(所有者)可以访问。

2. 共享文件夹:chmod 770

想和团队共享一个目录?可以让所有组成员都有权限:

chmod 770 team_folder

还可以用 chgrp 修改组为你的团队组。

3. 阻止意外修改:chmod a-w

你有个文件,不希望任何人误操作删改?禁用写权限:

chmod a-w important_document.txt

4. 临时开放执行权限:chmod +x

如果下载了一个脚本,需要临时运行它,可以快速赋予执行权限:

chmod +x script.sh
./script.sh

四、终极问题:谁动了我的权限?

想要知道谁对你的文件动了手脚?可以用 auditd 进行监控:

1.安装 auditd:

sudo apt install auditd

2.添加监控规则:

sudo auditctl -w /path/to/your/file -p rwxa -k file_monitor

3.查看日志:

sudo ausearch -k file_monitor

五、总结

Linux 目录权限虽然规则明确,但灵活多变,用好了可以事半功倍,用不好会踩各种坑。无论是保护自己的文件,还是高效地协作,掌握权限管理是不可或缺的一步。

责任编辑:华轩 来源: 微技术之家
相关推荐

2011-02-25 14:35:00

2017-05-18 16:30:29

Linux内存管理

2012-07-19 15:30:00

Linux

2020-04-08 09:20:25

Linux内存系统

2013-04-23 10:51:15

Linux压缩

2013-03-12 17:33:17

Linux系统性能调优

2021-06-02 08:33:31

TPCTPC-H系统

2022-02-08 17:39:04

MySQL服务器存储

2018-09-26 06:50:19

2013-06-05 16:44:33

Linux系统用户账号管理

2021-06-09 13:28:40

密码安全身份认证数据安全

2013-12-26 14:23:03

定位系统GPS监测

2013-04-02 11:21:52

Linux操作系统虚拟主机

2022-04-13 10:03:59

性能优化性能分析工具JVM

2022-05-13 14:36:12

网络犯罪网络攻击密码

2022-05-23 08:34:08

微前端微服务开发

2022-04-08 09:47:55

性能优化开发

2016-03-02 09:34:03

runtime消息ios开发

2012-03-12 13:55:22

交互设计

2017-08-21 17:00:55

点赞
收藏

51CTO技术栈公众号