如何在 Linux 中更改文件权限
Suraj Joshi
2023年1月30日
Linux 是一个我们可以拥有多个用户的操作系统。所以,我们需要管理 Linux 中文件的访问权限。如果一个用户没有访问和编辑文件的权限,有时我们可能会得到 Permission denied error
。我们可以使用 chmod
命令行工具来更改 Linux 中的文件权限。
查看 Linux 文件的权限
要查看当前工作目录中所有文件和目录的权限,我们使用 ls -l
命令。
ls -l
输出:
-rw-rw-r-- 1 zeppy zeppy 123 Oct 4 20:47 1.sh
-rw-rw-r-- 1 zeppy zeppy 46 Sep 30 20:36 file.txt
每个文件开头的部分代表了该位置中每个特定文件的权限。在输出中,-rw-rw-r--
代表文件权限。
- 开头的
-
代表内容是一个文件。 rw-
代表用户的权限。rw-
代表用户组的权限。- “r–“表示其他用户的权限。
r
代表读权限,w
代表写权限,x
代表执行权限,-
代表无权限。
如输出所示,user
和 group
只有读和写权限,没有执行权限,而 others
对当前工作目录下的文件都只有读权限。
用 chmod
命令改变文件/目录的权限
语法
chmod permissions filename
这里,permissions
代表我们要设置的权限,filename
代表要设置权限的文件名。
我们可以使用绝对模式或使用符号模式来表示权限。
示例:使用 chmod
命令设置文件权限
chmod 760 file.txt
它将文件 file.txt
的读、写和执行权限设置为所有者或用户,将读和写权限设置为用户组,将其他用户的权限设置为无。这里,权限使用绝对模式表示。
chmod u=rwx,g=rw,o=--- file.txt
它将读、写、执行权限设置为所有者或用户,将读、写权限设置为用户组,将无权限赋给其他用户,使用符号模式。
例子:使用 chmod
命令为目录设置权限
要设置一个目录内所有文件的权限,我们使用 chmod
命令和 -R
或 --recursive
选项。
chmod -R 760 testdir
它将目录 testdir
的读、写、执行权限设置为所有者或用户,将读、写权限设置为用户组,将其他用户的权限设置为无,采用绝对模式。
chmod -R u=rwx,g=rw,o=--- testdir
它使用符号模式将目录 testdir
的读写权限设置为所有者或用户,将读写权限设置为组,而对其他用户权限设置为无权限。
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn