Linux Chmod 755 命令:它有什么作用?
chmod 命令在 Linux 系统上修改文件或目录的权限。chmod 命令后面的三个数字代表分配给用户所有者、组所有者和其他人的权限。数字 755 将读写执行权限分配给用户所有者,将读取执行权限分配给组所有者和其他人。
我们还将通过 Linux 命令chmod 755的示例。
首先,让我们从Linux是一个多用户系统的事实开始……
...这就是为什么如果您使用 Linux,必须知道设置文件和目录的权限。
用户和组有不同类型的权限:
- 读取权限
- 写权限
- 执行权限
而且,它们如何设置?
首先,这里是 chmod 命令的通用语法:
chmod <permissions> <file or directory>
命令的权限部分可以有不同的格式。一种格式是一组数字,就像您在下面看到的那样:
chmod 755 <file or directory>
因此,我们已将 755 分配给命令的权限部分。
但是这是什么意思?
要理解,让我们在当前目录中使用ls 命令来查看 Linux 提供的有关文件和目录的详细信息:
[myuser@localhost ~]$ ls -al
total 2592
drwxrwxr-x 5 myuser mygroup 4096 Nov 10 16:05 .
drwx------ 6 myuser mygroup 225 Mar 10 23:50 ..
-rwxrwxr-x 1 myuser mygroup 39 Oct 26 13:13 test_script.sh
drwxrwxr-x 6 myuser mygroup 98 Nov 8 18:09 data
我用粗体突出显示了我们正在查看的文件和目录。
哪一个是文件,哪一个是目录?
该行的左侧部分以d开头,代表目录,以破折号 (-) 开头,代表文件。
这条突出显示的行片段显示了用户所有者和组所有者,在这种特定情况下,用户所有者是myuser,组所有者是mygroup。
组的想法是多个用户可以属于它,因此具有相同的访问级别。
例如,公司中的组的一个示例可能是营销团队,其成员应该对文件和目录具有相同级别的访问权限。此访问权限由一组权限定义。
可以使用 chmod 命令设置与前面提到的相同的权限。
读、写和执行权限
所以,让我们再看看 ls 命令的输出:
[myuser@localhost ~]$ ls -al
total 2592
drwxrwxr-x 5 myuser mygroup 4096 Nov 10 16:05 .
drwx------ 6 myuser mygroup 225 Mar 10 23:50 ..
-rwxrwxr-x 1 myuser mygroup 39 Oct 26 13:13 test_script.sh
drwxrwxr-x 6 myuser mygroup 98 Nov 8 18:09 data
这次我们关注输出的第一部分,分配给文件和目录的权限。
以下是分解权限的方法:
- 字符 1:正如我们之前所说,它表示这是一个文件 ( - ) 还是一个目录 ( d )。
- 2-4:用户所有者的权限(在本例中为rwx)
- 5-7:组所有者的权限(在本例中为rwx)
- 8-10:其他人的权限(任何不是用户所有者或不属于组所有者的用户 - 在这种情况下rx)
是时候介绍权限的基本值(2-10 之间的字符):
- r : 读取权限
- w : 写权限
- x : 执行权限
破折号 ( - ) 显示未设置的权限(例如rx表示设置了读取和执行权限但未设置写入权限)。
所以,如果我们回到我们的文件:
-rwxrwxr-x 1 myuser mygroup 39 Oct 26 13:13 test_script.sh
用户owner有读写执行权限,group owner有读写执行权限,其他人有读执行权限(不设置写权限)。
这同样适用于目录:
drwxrwxr-x 6 myuser mygroup 98 Nov 8 18:09 data
因此,请始终记住以三个字母为一组读取权限,这些字母始终遵循相同的逻辑顺序:r(读取)、w(写入)和 x(执行)。
Chmod 使用的权限的八进制表示
那么,这与最初的问题有什么关系?
命令chmod 755是什么意思?
这正是 755 的含义,用户所有者、组所有者和其他人的一组权限的八进制表示。
八进制数来自以下数字的总和:
- 4为读权限
- 2写权限
- 1为执行权限
其中用户所有者、组所有者和其他人的权限是分开考虑的。
换句话说,用户所有者的权限总和将产生一个八进制数(从 0 到 7),这同样适用于组所有者和其他人的权限。
回到 755,这是它的意思:
- 7: 4 + 2 + 1 = 读 + 写 + 执行权限
- 5: 4 + 1 = 读取 + 执行权限
- 5: 4 + 1 = 读取 + 执行权限
是否有意义?
你会如何翻译权限 644 呢?
还请记住远离为所有人提供完全访问权限的权限 777。
对文件和目录使用 Chmod 755 命令
现在我们知道了 755 的含义,让我们来看看这组权限对文件和目录的影响。
我们想从用户的角度了解在应用于文件或目录时读取、写入和执行权限的作用。
- 读取权限:
- file:读取文件内容
- 目录:列出目录的内容
- 写权限:
- file:修改文件内容
- 目录:对目录中的文件进行增删改名(假设对目录设置了执行权限)
- 执行权限:
- 文件:定义一个可执行文件(例如一个 Bash 脚本)
- 目录:访问目录
所以,您现在知道命令 chmod 755 对文件和目录的意义。
要完全理解它,请尝试创建一个文件和一个目录并尝试使用不同的权限。
递归 Chmod 755 命令
到目前为止,在我们所有的示例中,我们只使用了 chmod 755 命令,后跟权限集以及我们也应用这些权限的文件或目录。
有时您可能希望为一个目录及其下的所有文件和子目录分配相同的权限。
chmod 命令提供了一个标志,允许将权限更改递归地应用于您应用该命令的目录下的任何内容。
看一个例子……
...我创建了一个名为 test_dir 的目录:
drwxr-xr-x 5 myuser mygroup 160 Jul 23 23:56 test_dir
如您所见,目录的权限为 rwx (7)、rx (5) 和 rx (5)。
然后在这个目录中我创建了两个子目录(test_dir1 和 test_dir2)和一个文件(testfile)。
[myuser@localhost ~]$ ls -al test_dir/
total 0
drwxr-xr-x 5 myuser mygroup 160 Jul 23 23:56 .
drwxr-xr-x 3 myuser mygroup 96 Jul 23 23:56 ..
drwxr-xr-x 2 myuser mygroup 64 Jul 23 23:56 test_dir1
drwxr-xr-x 2 myuser mygroup 64 Jul 23 23:56 test_dir2
-rw-r--r-- 1 myuser mygroup 0 Jul 23 23:56 testfile
如果我想确保 test_dir 目录中的所有内容都将权限设置为 755,我可以使用带有 -R 标志的 chmod 命令:
chmod -R 755 test_dir
这是运行命令后目录的内容:
[myuser@localhost ~]$ ls -al test_dir/
total 0
drwxr-xr-x 5 myuser mygroup 160 Jul 23 23:56 .
drwxr-xr-x 3 myuser mygroup 96 Jul 23 23:56 ..
drwxr-xr-x 2 myuser mygroup 64 Jul 23 23:56 test_dir1
drwxr-xr-x 2 myuser mygroup 64 Jul 23 23:56 test_dir2
-rwxr-xr-x 1 myuser mygroup 0 Jul 23 23:56 testfile
如您所见,文件 testfile 的权限已从 rw-r–r– (644) 更新为 rwxr-xr-x (755)。
说得通?
结论
在本文中涵盖了很多概念。现在你应该知道:
- chmod 命令的用途。
- 应用于 chmod 的数字 755 是多少?
- 哪个命令赋予用户和组所有者一定的权限。
- 如何使用八进制表示映射读取、写入和执行权限。
- chmod 755 的含义适用于文件和目录。
- 点赞
- 收藏
- 关注作者
评论(0)