Linux 目录权限那些事儿

549e8b596c7213997443219b5219510a.png

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

一、Linux 权限的基础概念

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

88e6503816eb48e2d00c190e9d38fff6.png

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

e76e3ad463b9ed0c88964092cfbd03e5.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值