如何在Linux系统上设置文件和目录权限?

  • Post category:Linux

在 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 命令可以帮助我们完成这项操作,使用数字形式和符号形式都可以很方便地设置文件和目录的权限。在设置权限的时候,我们也需要注意不要将权限设置过于宽泛,以避免安全问题的出现。