Linux+中的Chmod命令示例 |
您所在的位置:网站首页 › linux指定用户对目录权限 › Linux+中的Chmod命令示例 |
在UNIX/Linux系统中,每个文件或目录都与3种类型的权限相关联,这些权限控制对它们的访问权限。这些权限是读、写和执行。这允许或防止用户读取文件或写入文件。执行权限允许用户将文件作为脚本或可执行文件运行。 什么是chmod命令Chmod命令用于更改Linux中文件系统对象(如文件和目录)的访问权限。它还用于更改特殊标志,例如SUID、SGID和粘附位。 您可以使用ls -l命令来检查由r、w和x表示的文件模式。 Linux文件权限在Linux/Unix类操作系统中,每个文件和目录都由用户和组拥有。当我们谈论Linux文件权限时,它涉及文件所有者、组所有者和权限。 有三个基于用户的权限组: 所有者 - 拥有文件或目录的用户。默认情况下,当用户创建文件或目录时,同一用户将成为其所有者。 组 - 拥有文件或目录的组。组中的所有成员将在文件或目录上具有相同的访问权限。 其他 - 不是文件或目录所有者且不属于组的用户。这意味着“everyone”或另一种说法是“world”。 可以使用chown命令更改文件和目录的所有权。要仅更改文件或目录的组,请使用chgrp命令。默认的文件和目录权限基于umask设置。 每个文件或目录有三种文件权限类型: 读 写 执行 字符表示读是r,写是w,执行是x。 读权限文件的读权限表示可以打开并阅读文件。 目录(文件夹)的读权限表示用户可以列出目录的内容。 写权限文件的写权限表示可以更改(修改或更改)文件。 目录的写权限表示可以更改目录内容。例如,用户可以在目录中创建新文件、删除或重命名文件。 执行权限文件的执行权限表示可以执行文件。例如,用户可以执行程序或shell脚本文件。 目录的执行权限表示用户可以更改(cd)到目录。但是,这不允许用户列出目录内容。 特殊权限模式除了读、写和执行之外,您还可以在文件和目录上分配几个特殊权限模式。特殊权限模式是SUID(setUID)、SGID(setGID)和粘附位。 当在文件上设置SUID位时,该文件始终作为拥有该文件的用户而不是启动程序的用户运行。使用SUID的Linux命令的一个示例是ls -l /usr/bin/passwd,该命令在普通用户运行时会给予提升的特权。 当在文件上设置SGID时,有效组设置为文件的组。在执行程序时,用户将获得文件组权限。 粘附位通常设置为目录。一旦在目录上设置了粘附位,则只有文件所有者或root可以更改该目录内的文件或目录。 如何在Linux中执行chmodChmod使用符号模式或数字模式来指定权限。您需要是root、文件所有者或sudo用户特权才能更改文件权限。 使用数字模式更改文件/目录权限Chmod数字模式也称为绝对模式。这是最常用的方法。 读、写和执行分配具有特定数字号码。我们使用该数字或组合来设置文件和目录的权限。 Linux权限数字(八进制值)为: r(读取)= 4 w(写入)= 2 x(执行)= 1 没有权限 = 0 数字模式中chmod的语法: chmod 权限数字通常是一个3位数字(每个三位数字由一个八进制模式数字表示)。第一个数字表示所有者,下一个数字表示组,最后一个数字表示其他人。 例如,要设置文件夹的chmod权限: chmod 777 hello-programs 以下是关于Linux文件权限和如何更改它们的介绍:在文件权限中,第一个数字代表文件所有者的读、写、执行权限,用rwx表示,分别对应4、2、1,所以如果第一个数字是7,则代表文件所有者拥有读、写和执行权限。第二个数字代表文件所属组的读、写、执行权限,第三个数字代表其他用户的读、写、执行权限。权限数字可以通过每个用户类别中八进制值的总和来计算。 例如,权限 -rw-rw-r-- 可以表示为: 用户(u): rw- = 4+2+0=6 组(g): rw- = 4+2+0=6 其他(o): r-- = 4+0+0=4 从上面的计算中,我们得到数字权限为 664。 再举一个例子,文件权限为 -rwxr-xr--: 用户(u): rwx = 4+2+1=7 组(g): r-x = 4+0+1=5 其他(o): r-x = 4+0+1=5 在这种情况下,数字权限为 755。 你可以同时为用户、所有者和其他用户设置权限。如果要添加特殊权限,如粘着位(sticky bit)、SUID或SGID,我们使用4位数字。第一个数字用于设置以下特殊权限: SUID = 4 SGID = 2 sticky bit = 1 zero effect = 0 例如,在/tmp目录上设置特殊权限粘着位: chmod 1777 /tmp 当有许多文件和目录时,你可以递归更改权限: chmod -R 755 directory-name 使用符号模式进行chmod更改文件/目录权限 chmod符号模式也称为相对模式。当使用符号模式进行chmod操作时,使用字符u(所有者)、g(组)、o(其他)和a(所有用户)。 基本语法: chmod file-name or directory-name 其中: "-" - 仅删除指定权限 "+" - 添加到已有的其他权限 "=" - 忽略所有权限并按指定的权限更改权限 例如,要在目录上设置完全权限: chmod u=rwx,g=rwx,o=rwx directory-name 或者 chmod ugx+rwx directory-name 或者 chmod a+rwx directory-name 递归更改目录和文件权限 要递归更改目录的文件权限,请使用-R或--recursive标志。以下是递归更改目录权限的语法: chmod -R MODE filename 例如,要在/var/www目录中为子目录和文件分配数字权限模式755,请运行以下命令: sudo chmod -R 755 /var/www/html 在符号表示法中,可以表示为: chmod -R u=rwx,og=rx /var/www/html 指定的目录路径中的所有文件和子目录都将继承分配给目录的权限。 更改多个文件的权限 有时你想批量更改目录或文件的权限。 find /path/to/directory -type d -exec chmod mode {} \; find /path/to/directory -type f -exec chmod mode {} \; 例如,将/usr/share/nginx/html目录路径中的目录权限更改为755,请执行以下命令: find /usr/share/nginx/html -type d -exec chmod 755 {} \; 符号表示法为: find /usr/share/nginx/html -type d -exec chmod u=rwx,og=rx {} \; 使用参考文件更改权限 使用--reference=reference_file选项,可以将文件权限从一个文件转移到另一个文件。在所示的语法中,filename最终具有与reference_file相同的文件权限。 chmod --reference=reference_file filename 符号链接中的chmod 在大多数Linux系统中,符号链接权限一般不太重要。通常,更改符号链接的文件权限会更改它所指向的文件的文件权限,而不是符号链接本身。但是在某些系统中,如果需要更改符号链接的权限,则可以键入: chmod 644 symlink 一些有用的chmod命令示例 chmod 755 directory-name 这等价于chmod u=rwx,go=rx。这为所有者设置读、写和执行权限(完全权限),为其他用户设置读和执行权限。 chmod +x filename 这相当于chmod ugo+x或chmod u+x,g+x,o+x。这为所有者、组和其他用户设置执行权限。 chmod 750 directory-name 这等价于chmod u+rwx,g=rx,o=.这为所有者设置完全权限,为组设置读和执行权限,为其他用户设置无权限。 chmod u+rwx directory-name 忽略所有权限并为所有者设置读、写和执行权限。 chmod -R 700 directory-name 递归为目录的所有者设置完全权限 chmod go-rwx filename 将组和其他用户的读、写和执行权限从文件中删除。 chmod 644 filename 这为所有者分配读和写权限,为文件的组和其他用户分配只读权限。 chmod g+x filename 将组成员的执行权限分配给文件 chmod go-rw filename 删除文件的用户和组类别的读和写权限。 在本教程中,我们学习了Linux chmod命令以及如何更改它们的权限。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |