在 Linux 系统上,文件和目录的权限采用了一种十分灵活的方式进行控制,每个文件和目录都具有所谓的权限位,用来表示不同用户关于该文件或目录的访问权限。在本文中,我们将介绍如何设置文件和目录权限。
了解文件和目录权限
文件和目录权限位有三种基本类型:读、写、执行。对于每一个文件或目录,都各自具有这三种权限位。因此,针对每个文件或目录,我们都可以用一个三位的数字表示其权限,其中每一位均可以为 4、2、1 或 0,其中:
- 4 表示读权限;
- 2 表示写权限;
- 1 表示执行权限;
- 0 表示无权限。
那么我们以 755 权限为例来说明:
- 第一个数字 7 表示该文件或目录所有者具有 4+2+1 权限,即可读可写可执行;
- 第二个数字 5 表示该文件或目录的所属组具有 4+1 权限,即可读和可执行,但无写权限;
- 第三个数字 5 表示其他用户也具有 4+1 权限,即可读和可执行,但无写权限。
设置文件和目录权限
设置文件或目录的权限非常简单,只需要使用 chmod 命令即可。chmod 命令用来修改文件或目录的权限,其基本语法如下:
chmod mode file
其中,mode 指代待设置的权限,可以为数字形式(例如:755),也可以为符号形式(例如:rwxr-xr-x)。file 指代待设置权限的文件或目录。
数字形式修改权限
数字形式修改权限比较直观,其基本原理是将文件或目录的权限转化为三个数值,并将这三个数值转化为八进制数表示,最后将结果传递给 chmod 命令即可。
比如,将文件 a.txt 的权限设置为 644,执行如下命令:
chmod 644 a.txt
这样,a.txt 的权限就被更改为:
-rw-r--r--
符号形式修改权限
符号形式修改权限是一种相对较为灵活的设置权限的方式,其基本原理是逐一指定权限的操作者、权限类型、以及所要进行的操作。为了指定不同的操作者和权限类型,我们引入如下符号符号:
符号 | 意义 |
---|---|
u | 表示所有者 |
g | 表示所有者所在组 |
o | 表示其他用户 |
a | 表示所有用户 |
– | 表示取消对应权限 |
+ | 表示添加对应权限 |
= | 表示设置对应权限 |
综合上述符号,我们就可以使用相对灵活的方式修改文件或目录的权限。比如,将 a.txt 的所有者和所属组的权限改为可读写,其他用户的权限改为只读,执行如下命令:
chmod u=rw,g=rw,o=r a.txt
这样,a.txt 的权限就被更改为:
-rw-rw-r--
案例分析
下面我们可以通过实际例子来更加深刻地理解 Linux 系统下设置文件和目录权限的方法。
示例1:设置可执行权限
假设我们有一个 shell 脚本程序 test.sh,现在想要设置该程序的执行权限。我们可以使用以下命令来设置该程序的执行权限:
chmod +x test.sh
这样,程序 test.sh 就被授予可执行权限。我们可以使用 ls -l 命令查看它的权限:
$ ls -l test.sh
-rwxr--r--. 1 root root 46 Oct 23 14:23 test.sh
可以看到,test.sh 的权限最后一列中多出了一个“x”表示可执行权限。
示例2:禁止其他用户修改个人目录
假设我们的系统上有一个用户 user1,其个人目录为 /home/user1。user1 拥有该目录的所有权,在该目录中,其他用户只有读和执行权限。为了禁止其他用户修改该目录下的内容,我们需要将其写权限关闭,使用如下命令完成:
chmod 755 /home/user1
这样,/home/user1 目录所有者 user1 仍拥有 rwx 权限,该目录所属组和其他用户只具有 r-x 权限,其他用户无法修改其中的内容。
总结
通过本篇文章的介绍,我们可以了解到在 Linux 系统下如何设置文件和目录权限。chmod 命令可以帮助我们完成这项操作,使用数字形式和符号形式都可以很方便地设置文件和目录的权限。在设置权限的时候,我们也需要注意不要将权限设置过于宽泛,以避免安全问题的出现。