如何在Linux上使用chmod命令
- 原创
- |
- 浏览:2342
- |
- 更新:
方法/步骤
chmod修改文件权限
在Linux中,可以通过多组权限控制谁可以对文件或目录执行操作。有三组权限。一组用于文件的所有者,另一组用于文件组的成员,最后一组用于其他人。
权限控制可以对文件或目录执行的操作。它们允许或阻止文件被读取,修改,或者如果是脚本或程序,则执行。对于目录,权限管理谁可以cd进入目录以及谁可以创建或修改目录中的文件。
您可以使用该 chmod 命令设置每个权限。要查看在文件或目录上设置了哪些权限,我们可以使用ls。
查看和了解文件权限
我们可以使用-l(长格式)选项ls列出文件和目录的文件权限。
ls -l
在每一行上,第一个字符标识正在列出的条目类型。如果它是破折号(-),则它是一个文件。如果是字母d 则是目录。
接下来的九个字符代表三组权限的设置。
前三个字符显示拥有该文件的用户的权限(用户权限)。
中间三个字符显示文件组成员的权限(组权限)。
最后三个字符显示不在前两个类别中的任何人的权限(其他权限)。
每组权限中有三个字符。字符是存在或不存在其中一个权限的指示符。它们是破折号(-)或字母。如果字符是破折号,则表示未授予权限。如果字符是一个r,w或者x,该权限已被授予。
这些字母代表:
r:读取权限。可以打开文件,查看其内容。
w:写权限。可以编辑,修改和删除该文件。
x:执行权限。如果文件是脚本或程序,则可以运行(执行)。
例如:
--- 表示根本没有授予任何权限。
rwx表示已授予完全权限。读,写和执行指标都存在。
在我们的屏幕截图中,第一行以a开头d。此行指的是名为“archive”的目录。目录的所有者是“dave”,目录所属的组的名称也称为“dave”。
接下来的三个字符是此目录的用户权限。这些表明所有者拥有完全权限。的r,w和x人物都存在。这意味着用户dave具有该目录的读,写和执行权限。
第二组三个字符是组权限,这些是r-x。这些表明dave组的成员具有此目录的读取和执行权限。这意味着他们可以在目录中列出文件及其内容,并且可以cd(执行)到该目录中。它们没有写入权限,因此无法创建,编辑或删除文件。
最后一组三个字符也是 r-x。这些权限适用于不受前两组权限管理的人员。这些人(称为“其他人”)对此目录具有读取和执行权限。
因此,总而言之,组成员和其他人具有读取和执行权限。所有者(名为dave的用户)也具有写入权限。
对于所有其他文件(除了mh.sh脚本文件),dave和dave组的成员对文件具有读写属性,而其他文件只具有读权限。
对于mh.sh脚本文件的特殊情况,所有者dave和组成员具有读取,写入和执行权限,而其他成员仅具有读取和执行权限。
了解权限语法
要用于chmod 设置权限,我们需要告诉它:
谁: 我们为谁设置权限。
什么:我们正在做出哪些改变?我们是否添加或删除了权限?
其中:我们设置了哪些权限?
我们使用指标来表示这些值,并形成简短的“权限声明”,例如u+x,“u”表示“用户”(who),“+”表示添加(what),“x”表示执行权限(which) 。
我们可以使用的“谁”值是:
u:用户,表示文件的所有者。
g:组,表示文件所属组的成员。
Ø:其他,好心人不受制约u和g权限。
a:全部,意思是以上所有。
如果没有使用这些,则chmod表现得好像使用了“ a”。
我们可以使用的“什么”值是:
-:减号。删除权限。
+:加号。授予权限。该权限将添加到现有权限中。如果您想拥有此权限并且仅设置此权限,请使用=下面描述的选项。
=:等号。设置权限并删除其他人。
我们可以使用的“哪个”值是:
r:读取权限。
w:写入权限。
x:执行权限。
设置和修改权限
假设我们有一个文件,每个人都拥有完整的权限。
ls -l new_ file.txt
我们希望用户dave具有读写权限,并且组和其他用户只具有读取权限。我们可以使用以下命令:
chmod u = rw,og = r new_file.txt
- 本页面未经授权抓取自百度经验
使用“=”运算符意味着我们删除任何现有权限,然后设置指定的权限。
让我们检查一下这个文件的新权限:
ls -l new_file.txt
已删除现有权限,并且已按照我们的预期设置了新权限。
如何在不删除现有权限设置的情况下添加权限?我们也可以轻松地做到这一点。
假设我们有一个已经完成编辑的脚本文件。我们需要让它对所有用户都可执行。它的当前权限如下所示:
ls -l new_script.sh
我们可以使用以下命令为每个人添加执行权限:
chmod a + x new_script.sh
如果我们查看权限,我们会看到执行权限现在已授予所有人,现有权限仍然存在。
ls -l new_script.sh
如果没有“a + x”语句中的“a”,我们可以实现同样的目标。以下命令也可以正常工作。
chmod + x new_script.sh
设置多个文件的权限
我们可以同时对多个文件应用权限。
这些是当前目录中的文件:
ls -l
假设我们要从具有“.page”扩展名的文件中删除“其他”用户的写入权限。我们可以使用以下命令执行此操作:
chmod或* .page
我们来看看它有什么影响:
ls -l
我们可以看到,已从“其他”类别的用户的“.page”文件中删除了读取权限。没有其他文件受到影响。
如果我们想要在子目录中包含文件,我们可以使用-R(递归)选项。
chmod -R或* .page
数字速记
另一种使用方法chmod是将您希望提供给所有者,组和其他人的权限作为三位数字。最左边的数字表示所有者的权限。中间数字表示组成员的权限。最右边的数字代表其他人的权限。
此处列出了您可以使用的数字及其代表的数字:
0:(000)没有许可。
1:(001)执行权限。
2:(010)写入权限。
3:(011)写入和执行权限。
4:(100)读取权限。
5:(101)读取和执行权限。
6:(110)读写权限。
7:(111)读,写和执行权限。
三个权限中的每一个都由十进制数的二进制等效项中的一个位表示。所以5,二进制101,意味着读和执行。2,二进制为010,表示写入权限。
使用此方法,您可以设置您希望拥有的权限; 您不会将这些权限添加到现有权限。因此,如果读取和写入权限已经到位,则必须使用7(111)来添加执行权限。使用1(001)将删除读取和写入权限并添加执行权限。
让我们在其他类别的用户的“.page”文件中添加读取权限。我们还必须设置用户和组权限,因此我们需要将它们设置为已经存在的权限。这些用户已具有读写权限,即6(110)。我们希望“其他人”具有读取和权限,因此需要将其设置为4(100)。
以下命令将完成此任务:
chmod 664 * .page
这将我们为用户,组成员和其他人所需的权限设置为我们所需的权限。用户和组成员将其权限重置为已有的权限,其他用户已恢复读取权限。
ls -l
END


















