Linux中的Chmod命令用于更改或分配文件和目录的权限。在Linux/Unix系统中,文件和目录的可访问性由文件所有权和权限决定。在上一篇文章中,我们了解了如何使用chown命令管理文件和目录的所有权。在本教程中,我们将介绍chmod命令。chmod命令(更改模式的缩写)用于管理文件和目录权限并确定谁可以访问它们。现在让我们深入了解文件和目录权限的性质,以及如何修改它们。Linux权限为了更好地理解chmod命令的工作原理,是时候仔细看看Linux文件权限模型了。在Linux中,我们有3种类型的文件权限:读(r)、写(w)和执行(x)权限。这些权限决定了哪些用户可以读取、写入或执行文件。您可以使用文本或八进制(数字)表示法分配这些权限,我们将在本教程后面讨论。来自:https://www.linuxmi.com/linux-chmod.html文件和目录可以属于文件的所有者(u)、组(g)或其他(o)u-每个人的权限g-权限allgroups权限o-其他人的权限使用ls-l命令可以长格式查看当前目录下所有可见文件的详细属性。-l标志列出文件的权限。权限分为三组:用户(user)、组(group)和其他(others)。为了更好地理解文件权限,我们将如下列出目录的内容:linuxmi@linuxmi:~/www.linuxmi.com$ls-l从最左边开始,第一个字符/符号表示文件类型。连字符(-)表示该文件是普通文件。符号d表示它是一个目录。符号l表示它是一个符号链接。剩下的9个字符被分成3个三元组,每个三元组有三个符号r(读)、w(写)和x(执行)。前面说到,第一部分是所有者权限,第二部分是组权限,最后一部分是其他用户对文件或目录的权限。从输出中,我们可以看到我们有4个文件和2个目录。我们看第一个文件-rw-rw-r--1linuxmilinuxmi108710月320:23linuxmi.com.cpp对于第一个文件,-rw-rw-r–权限表示该文件的拥有者有读写权限,该组也有读写权限,而其他用户只有读权限。再看一下目录的权限:drwxrwxr-x3linuxmilinuxmi409610月1213:31Linuxfan我们可以看到目录和组的属主拥有所有的权限(读、写和执行),而其他用户只有读和执行的权限。三重连字符-表示未向文件、组或其他用户的所有者授予任何权限。使用chmod命令设置文件和目录权限现在我们已经了解了文件权限以及如何查看它们,让我们不要关注如何修改这些权限。Linux中的chmod命令用于使用文本(符号)或数字(八进制)表示法更改文件和目录权限。它采用以下语法:$chmod[options]patternfilename只有root用户或具有sudo权限的普通用户才能更改文件或目录权限。您可以在命令语法中传递多个文件或目录,以空格分隔。现在让我们深入了解chmod命令的不同示例。示例1)使用数字符号分配权限当使用数字样式/符号设置权限时,请使用以下语法:$sudochmod[options]numbervaluefilenamevalue可以是3或4个数字。但是,在大多数情况下,会使用3个数字。读取、写入和执行权限采用以下值:读取权限=>4写入权限=>2执行权限=>1权限值的总和,即读取、写入和执行,都对给定文件或目录具有完全权限。这是什么意思?假设属主有读、写和执行权限,组有读和执行权限,其他用户只有读权限,这可以细分为:u:rwx=7g:rx=5o:r–=4因此,我们得到值754作为给定文件的文件权限的数值。要为所有者分配读、写和执行权限,而只为组和其他用户分配读取权限,请运行以下命令:$chmod744www.linuxmi.com.txtToassignallpermissionstoall如果要分配所有权限给文件的所有者,请对该组具有读写权限。权限,其他用户请运行以下命令:$chmod755linuxmi.txt示例2)递归分配目录权限在为目录分配权限时,使用-R标志递归地为其目录和子文件夹分配权限。例如:$chmod755-Rdirname$chmod755-R/home/linuxmi/linux示例3)使用文本表示法指定权限另一种分配权限的方法是使用文本表示法。在这种方法中,chmod命令采用标志或符号来表示所有者、组、其他或所有用户(u、g和o)的语法。这种方法不像前面的方法那么直接,应该注意避免分配错误的权限。这就是语法的样子$chmod[options][ugoa][–+=][r,w,x]file让我们分解一下。第一组参数[ugoa]指定权限将改变的用户类u:userg:groupo:othera:all(包含以上所有)如果省略此组,则默认选项为a选项.第二组选项–OperatorOptions[–+=]–确定是要添加权限还是从用户类中删除权限。optionremove-:此标志删除指定用户的文件权限。+:添加/增加指定用户的权限。=:为指定用户分配不同的权限,并删除该用户段之前的权限。示例4)为文件分配读取权限$chmodo=rfilename上面的命令只会分配其他用符号'o'表示的用户对该文件的读取权限,并删除之前分配给'others'段的权限。获取linuxmi.txtlinuxmi@linuxmi具有以下权限:~/www.linuxmi.com$ls-llinuxmi.txt-rwxrwxr-x1linuxmilinuxmi1087Oct320:23linuxmi.txt请为“其他(o)”部分分配读取权限仅运行linuxmi@linuxmi:~/www.linuxmi.com$sudochmodo=rlinuxmi.txt[sudo]linuxmi密码:linuxmi@linuxmi:~/www.linuxmi.com$ls-llinuxmi.txt-rwxrwxr--1linuxmilinuxmi1087October320:23linuxmi。txt从输出中可以看出,“others”段被赋予了读权限,同时失去了执行权限。这意味着=运算符将在删除以前的权限的同时分配新的权限。示例5)为文件和组所有者分配执行权限linuxmi@linuxmi:~/www.linuxmi.com$sudochmodug+xlinuxmi.txtlinuxmi@linuxmi:~/www.linuxmi.com$ls-llinuxmi.txt-rwxrwxr--1linuxmilinuxmi108710Jan320:23linuxmi.txt上面的命令为文件的所有者和组添加了执行权限。使用我们的文件,会变成:例6)给文件、组等分配不同的权限sudochmodu=rwx,g=rw,o=rfilename上面的命令把所有的权限都分配给了文件的所有者,将读写权限都分配给组,并且只授予其他用户读取权限。注意:如果=运算符后没有指定权限,则用户段中的所有权限将被删除。示例7)删除??其他用户的所有权限$sudochmodo=filenamesudochmodo=linuxmi.txt$sudochmodo-rwxlinuxmi.txt上述命令从“其他”用户部分删除指定文件的所有权限。此命令与以下命令具有相同的效果:$sudochmodo-rwxfilenamelinuxmi@linuxmi:~/www.linuxmi.com$sudochmodo=linuxmi.txtlinuxmi@linuxmi:~/www.linuxmi.com$ls-llinuxmi.txt-rwxrw----1linuxmilinuxmi1087Oct320:23linuxmi.txtlinuxmi@linuxmi:~/www.linuxmi.com$sudochmodo-rwxlinuxmi.txtlinuxmi@linuxmi:~/www.linuxmi.com$ls-llinuxmi.txt-rwxrw----1linuxmilinuxmi1087Oct320:23linuxmi.txt示例8)使用模板文件分配权限另一种分配文件权限的简便方法是使用参考文件。在此方法中,您使用--reference=
