最新消息:国外VPS购买直达:GigsGigsCloud | 搬瓦工 | Vultr | Digitalocean | Virmach

chmod命令详解

技术教程 风为裳 50浏览 0评论

chmod命令用于更改Linux系统文件或目录的访问权限。 使用它来控制对文件或目录的访问。此命令有两种用途。一种是包含字母和运算符表达式的文本设置方法;另一种是包含数字的数字设置方法。

Linux系统中的每个文件和目录都具有访问权限,用于确定谁可以访问和操作文件和目录。
对文件或目录的访问权限分为只读,只写和可执行。对于文件,只读权限意味着只允许读取其内容,并禁止任何更改。可执行权限表示允许该文件作为程序执行。创建文件时,文件所有者自动对文件具有读取,写入和可执行权限,以便于读取和修改文件。 用户还可以根据需要为他们需要的任何组合设置访问权限。
有三种不同类型的用户可以访问文件或目录:文件所有者,用户组和其他用户。所有者通常是文件的创建者。所有者可以允许同一组用户访问该文件,还可以将该文件的访问权限授予系统中的其他用户。在这种情况下,系统中的每个用户都可以访问用户拥有的文件或目录。

下图直观地显示了Linux系统中的文件目录权限信息。有了它,在实际操作中更方便查阅和计算出主机后台管理类似于由数字755,604和664表示的特定权限。

每个文件或目录有三组访问权限,每组由三位数表示,即文件所有者的读,写和执行权限; 同一组中用户的读,写和执行权限; 系统中的其他用户读取,写入和执行权限。使用ls -al命令显示文件或目录的详细信息时,最左边的列是文件的访问权限。

您可以使用ls -al命令列出当前目录文件,文件夹和相应的权限。可以直接使用ll -al命令是一样的。

[root@localhost testfile]# ll -al
dr-xr-x---  3 root root     4096 Jan  3 04:40 1.txt
dr-xr-xr-x 18 root root     4096 May 12  2018 2.txt
-rw-------   1 root root     2256 Jan  8 10:41 3.txt
-rw-r--r--  1 root root       18 Dec 28  2013 4.txt
-rw-r--r--  1 root root      176 Dec 28  2013 test.txt
-rw-r--r--  1 root root      176 Dec 28  2013 6.txt
-rw-r--r--  1 root root      100 Dec 28  2013 7.txt
-rw-r--r--   1 root root       25 Jan  3 04:31 8.txt

我们以test.txt为例:

-rw-r--r-- 1 root root 176 Dec 28 2013 test.txt

第五列共有10个位置,第一个字符指定文件类型。 在通常意义上,目录也是文件。 如果第一个字符是水平线,则表示非目录文件。 如果是d,则表示它是目录。 从第2个字符到第十个总共9个字符,一组三个字符分别表示三组用户对文件或目录的权限。 权限字符使用水平线表示空权限,r表示只读,w表示写入,x表示可执行。

例如:
-rw-r–r–
表示test.txt是一个普通文件;test.txt的属主有读写权限;与test.txt属主同组的用户只有读权限;其他用户也只有读权限。

在确定文件的访问权限之后,用户可以使用Linux系统提供的chmod命令来重置不同的访问权限。 您还可以使用chown命令更改文件或目录的所有者。 使用chgrp命令更改文件或目录的用户组。

chmod命令对于更改文件或目录的访问权限非常重要。 用户使用它来控制对文件或目录的访问。 chmod命令的细节如下。

命令格式

chmod [-cfvR] [--help] [--version] mode file

用于改变文件或目录的访问权限,用它控制文件或目录的访问权限。

命令参数说明

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明:

-c : 如果文件权限确实已更改,则会显示更改操作。
-f : 如果无法更改文件权限,错误信息不输出。
-v : 显示权限更改的详细信息。
-R : 处理指定目录以及其子目录下的所有文件
–help : 显示帮助说明。
–version : 显示版本。

使用实例

将文件 file.txt 设为所有人皆可读取 :

chmod ugo+r file.txt

将文件 file.txt 设为所有人皆可读取 :

chmod a+r file.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

将 test.txt 设定为只有该文件拥有者可以执行 :

chmod u+x test.txt

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *

此外chmod也可以用数字来表示权限如 :

chmod 777 file

语法为:

chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1

若要rwx属性则4+2+1=7;

若要rw-属性则4+2=6;

若要r-x属性则4+1=5。

chmod a=rwx file 和 chmod 777 file 效果相同

chmod ug=rwx,o=x file 和 chmod 771 file 效果相同

若用chmod 4755 filename可使此程序具有root的权限

使用“=”设置权限

chmod u=x testfile

实例

[root@localhost testfile]# ls -al test.txt

-rw-r--r-- 1 root root 176 Dec 28 2013 test.txt

[root@localhost testfile]# chmod u=x test.txt

[root@localhost testfile]# ls -al test.txt

---xrw-r-- 1 root root 176 Dec 28 2013 test.txt

转载请注明:风为裳 » chmod命令详解

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址