当前位置: 首页 > Linux

通过9个例子快速掌握linuxchmod命令

时间:2023-04-06 21:58:01 Linux

chmod命令linux系统中的chmod命令用于更改或分配文件和目录的权限。在linux/unix系统中,文件和目录的可访问性由文件所有权和权限决定。chmod命令是更改模式的缩写,用于管理文件和目录的权限并确定谁可以访问它们。现在让我们深入研究文件和目录权限的本质以及如何修改它们。Linux权限为了更好地理解chmod命令的工作原理,让我们仔细看看Linux文件权限模型。在linux中,我们有三种文件权限:读(r)、写(w)、执行(x)。这些权限决定了哪些用户可以读取、写入或执行文件。您可以使用文本或八进制(数字)表示法分配这些权限,我们将在本教程后面讨论。文件和目录所有者类型包括以下三种:u–文件的所有者(user)g–组(group)o–其他(others)使用ls-l命令列出文件权限,-l标志列出文件权限。$ls-l从最左边开始,第一个字符表示文件类型。连字符(-)表示该文件是常规文件。字符d表示它是一个目录。字符L表示这是一个符号链接。其余9个字符分为3个三元组,每个三元组包含三个符号r(读)、w(写)、x(执行)。前面说过,第一部分是指所有者权限,第二部分是组权限,最后一部分是其他用户对文件或目录的权限。从输出中,我们可以看到我们有两个文件(hello.txt和reports.zip)和一个目录。让我们检查第一个文件-rw-rw-r--1linuxtechilinuxtechi35Aug1715:42hello.txt对于第一个文件,-rw-rw-r--权限意味着文件的所有者具有读取和写权限,该组也有读写权限,而其他用户只有读权限。相同的权限也适用于reports.zip存档。我们看一下目录drwxrwxr-x的权限2linuxtechilinuxtechi4096Aug1715:43sales我们可以看到目录和组的所有者拥有所有权限(读、写和执行),而其他用户只有读和执行权限。三个连字符表示未向文件的所有者、组或其他用户授予任何权限。使用chmod命令设置文件和目录权限现在我们了解了文件权限以及如何查看它们,让我们看看如何修改它们。linux系统中的chmod命令用于使用文本(符号)或数字(八进制)表示法更改文件和目录权限。它采用以下语法:$chmod[OPTIONS]MODEfilename只有root用户或具有sudo权限的普通用户才能更改文件或目录权限。您可以在命令中传递以空格分隔的多个文件或目录。现在让我们深入了解chmod命令的不同示例。(1)使用数字符号分配权限当使用数字形式设置权限时,使用如下语法:$sudochmod[OPTIONS]numeric_valuefilename数值可以取3或4个数字。在大多数情况下,使用3个数字。读、写、执行权限取值如下读权限=>4写权限=>2执行权限=>1假设属主有读、写、执行权限,组有读、执行权限,其他用户只有读权限,可以分为以下几部分u:rwx=7g:r-x=5o:r--=4因此,我们得到754作为文件权限的值,执行以下命令$chmod744devops.txtownerhas所有权限,组用户读取和执行权限,其他用户无权限$chmod750coders.txt所有者拥有所有权限,组用户读取和执行权限,其他用户读取和执行权限$chmod755sysadmin.txt(2)递归赋值目录权限在为目录分配权限时,使用-R标志递归地为其文件和子文件夹分配权限。例如$chmod755-Rdirectory_name$chmod755-R/home/linuxtechi/data(3)使用文本符号分配权限),另一个用户的标志或符号(o)。这种方法不像前面的方法那么简单,需要注意避免分配错误的权限。这是它的语法$chmod[OPTIONS][ugoa][–+=][r,w,x]file第一组选项[ugoa]指定权限将更改的用户类别u:userg:groupo:othera:all(包括以上所有)如果省略此选项,则默认选项为一个选项。第二组选项[-+=]决定是向用户类添加还是删除权限。–:删除指定用户的权限:给指定用户添加权限=:给用户分配指定权限,并删除之前的权限下面看几个例子(4)给文件分配读权限$chmodo=rfilename上述命令只为其他用户分配对该文件的读取权限,用符号o表示,并删除之前分配给其他段的权限。示例文件file1.txt的原始权限被分配给other(o)段的只读权限如下,运行命令$sudochmodo=rfile1.txt从输出中我们可以看到others段有被分配了读取权限,但同时失去了执行权限。这意味着=运算符在擦除以前的权限的同时分配新的权限。(5)给文件所有者和组所有者赋予执行权限$sudochmodug+xfilename上面的命令给文件所有者和组赋予了执行权限。$sudochmodug+xfile1.txt(6)赋予所有者不同的权限$sudochmodu=rwx,g=rw,o=rfilename上面命令赋予文件所有者所有权限,会读写权限分配给组,只有读取权限分配给其他用户。注意:如果=操作符后没有指定权限,则删除用户部分的所有权限。(7)删除??其他用户的所有权限$sudochmodo=filename上述命令删除其他用户对指定文件的所有权限。此命令与以下命令具有相同的效果$sudochmodo-rwxfilename(8)使用引用文件分配权限引用文件是分配文件权限的一种非常方便的方式。在此方法中,使用--reference=ref_file选项将一个文件的权限设置为与另一个引用文件相同,使用以下语法$sudochmod--reference=ref_filefilename例如,设置file2的权限。txtto同file1.txt文件$sudochmod--reference=file1.txtfile2.txt(9)只给目录分配执行权限假设我们有一个目录,里面有文件和子目录,我们只想给目录分配执行权限$chmoda+X*我们使用大写字母X表示执行权限,上面的命令将对当前工作目录下的所有目录设置执行权限。我的开源项目课程-tencent-cloud(酷瓜云课堂-gitee仓库)course-tencent-cloud(酷瓜云课堂-github仓库)