使用 Linux 的chmod
命令控制谁可以访问读写或运行目标文件。
在 Linux 中,谁可以对文件或目录做什么是通过一系列权限来控制的。
权限可以控制对文件或目录执行的操作(读写或执行)。
我们可以使用-l
(长格式)选项来ls
列出文件和目录的文件权限。
ls -l
在每一行中,第一个字符标识列出条目类型。如果它是破折号 ( -
),则它是一个文件。如果是字母d
,则是目录。
接下来的九个字符代表三组权限的设置。
前三个字符显示拥有文件的用户的权限(用户权限)。
中间三个字符显示用户组成员的权限(组权限)。
最后三个字符显示前两个类别(其他权限)以外的任何人的权限。
每组权限中有三个字符。字符是权限存在与否的指示符。它们是破折号 ( -
) 或字母。如果字符是破折号,则表示未授予权限。如果字符是一个r
,w
或者x
,该权限已被授予。
字母代表:
r:读取权限。可以打开文件并查看其内容。
w:写权限。该文件可以被编辑、修改和删除。
x:执行权限。如果文件是脚本或程序,则可以运行(执行)。
例如:
---
意味着根本没有授予任何权限。
rwx
表示已授予完全权限。读取、写入和执行指示器都存在。
设置权限的语法
要使用chmod
设置权限,我们需要告诉它:
who: 我们为谁设置权限。
what:我们正在做出什么改变?我们是添加还是删除权限?
which:我们设置了哪些权限?
我们使用指标来表示这些值,并形成简短的“权限语句”,例如u+x
,其中“u”表示“当前用户”(who),“+”表示添加(what),“x”表示执行权限(which) .
我们可以使用的“who”值是:
u:用户,表示文件的所有者。
g:组,表示文件所属组的成员。
o : 其他,意思是不受u
和g
权限管理的人。
a : All,意思是以上所有。
我们可以使用的“what”的值包括:
–:减号。删除权限。
+:加号。授予权限。该权限将添加到现有权限中。如果您想拥有此权限并且仅设置此权限,请使用该=
选项,如下所述。
= : 等号。设置权限并删除其他权限。
我们可以使用的“which”值是:
r:读取权限。
w:写权限。
x:执行权限。
实例:
我们可以使用以下命令为每个人添加执行权限:
chmod a+x new_script.sh
我们希望用户 dave 具有读写权限,而组和其他用户仅具有读取权限。我们可以使用以下命令:
chmod u=rw,og=r new_file.txt
使用“=”运算符意味着我们清除所有现有权限,然后设置指定的权限。