Linux学习笔记:Linux命令之权限管理命令

chmod(重要)

  • 命令名称:chmod
  • 英文原意:change the permissions mode of a file
  • 执行权限:所有用户
  • 功能描述:改变文件或目录权限
  • 语法:chmod [{ugoa}{+-=}{rwxX}] [文件或目录] [mode=421] [文件或目录]
  • -R:递归修改
  • u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    • 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
  • 关于mode,用数字来表示权限
  • r —- 4
  • w —- 2
  • x —- 1
  • 所以rwxrw-r--对应的是764
  • Linux学习笔记:Linux命令之权限管理命令image-20210510190713527

例子1:

<span class="linenum hljs-number">1</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">2</span>-rw-r--r--&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">0</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">18</span>:<span class="hljs-number">53</span>&#xA0;linuxstudy.<span class="hljs-built_in">list</span><br><span class="linenum hljs-number">3</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">4</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">5</span>-rwxr--r--&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">0</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">18</span>:<span class="hljs-number">53</span>&#xA0;linuxstudy.<span class="hljs-built_in">list</span>

上述例子中我们用 chmod u+x linuxstudy.list语句修改了linuxstudy.list文件的权限,其含义是赋予该文件的拥有者执行权限。

例子2:

<span class="linenum hljs-number">1</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">2</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">3</span>-rwxrw----&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">0</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">18</span>:<span class="hljs-number">53</span>&#xA0;linuxstudy.<span class="hljs-built_in">list</span>

可以同时修改多个权限,用逗号分隔即可。上述语句令用户组拥有写的权限,去除了其他人读的权限。

例子3:

<span class="linenum hljs-number">1</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">2</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">3</span>-rwxrwx---&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">0</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">18</span>:<span class="hljs-number">53</span>&#xA0;linuxstudy.<span class="hljs-built_in">list</span>

我们也可以直接用 =来赋予权限!

不过,我们在实际操作中用的最多的并不是这种方式,而是用数字来表示。

例子4:

<span class="linenum hljs-number">1</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">2</span>root@atomy-<span class="hljs-keyword">virtual</span>-machine:/tmp<br><span class="linenum hljs-number">3</span>-rw-r-----&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">0</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">18</span>:<span class="hljs-number">53</span>&#xA0;linuxstudy.<span class="hljs-built_in">list</span>

640代表要将权限修改为 rw-r-----

例子5:关于-R,递归修改权限的操作

创建一个递归的文件夹,两个文件夹a和b的权限如下:

<span class="linenum hljs-number">1</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">2</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">3</span>drwxr-xr-x&#xA0;<span class="hljs-number">3</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">4096</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">19</span>:<span class="hljs-number">12</span>&#xA0;/tmp/a<br><span class="linenum hljs-number">4</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">5</span>drwxr-xr-x&#xA0;<span class="hljs-number">2</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">4096</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">19</span>:<span class="hljs-number">12</span>&#xA0;/tmp/a/b

修改文件夹a的权限,然后查看两者的权限:

<span class="linenum hljs-number">1</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">2</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">3</span>drwxrwxrwx&#xA0;<span class="hljs-number">3</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">4096</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">19</span>:<span class="hljs-number">12</span>&#xA0;/tmp/a<br><span class="linenum hljs-number">4</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">5</span>drwxr-xr-x&#xA0;<span class="hljs-number">2</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">4096</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">19</span>:<span class="hljs-number">12</span>&#xA0;/tmp/a/b

可以发现我们只改变了文件夹a的权限,文件夹b的权限没有变化。如果我们有一个需要,改版一个目录权限时,该目录下的文件也随着改变。我们将其权限改为766试试:

<span class="linenum hljs-number">1</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">2</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">3</span>drwxrw-rw-&#xA0;<span class="hljs-number">3</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">4096</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">19</span>:<span class="hljs-number">12</span>&#xA0;/tmp/a<br><span class="linenum hljs-number">4</span>root@atomy-virtual-machine:/tmp<br><span class="linenum hljs-number">5</span>drwxrw-rw-&#xA0;<span class="hljs-number">2</span>&#xA0;root&#xA0;root&#xA0;<span class="hljs-number">4096</span>&#xA0;<span class="hljs-number">5</span>&#x6708;&#xA0;&#xA0;<span class="hljs-number">10</span>&#xA0;<span class="hljs-number">19</span>:<span class="hljs-number">12</span>&#xA0;/tmp/a/b

权限 对于文件 对于目录 r——读权限 可以查看文件内容 可以列出目录中的内容 w——写权限 可以修改文件内容 可以在目录中创建、删除文件 x——执行权限 可以执行文件· 可以进入目录

特别注意w权限,举个例子:

一个目录的权限是777,该目录下一个文件的权限是700,那么创建了一个同组用户,能否删除这个文件?

答案是可以的!

因为对于文件来说,w权限只是针对修改文件内容,而删除文件的权限在目录中!

所以,题目提到目录权限是777,不管文件是什么权限,都可以被删除。

chown

  • 命令名称:chown
  • 英文原意:change file ownership
  • 执行权限:所有用户
  • 功能描述:改变文件或目录的所有者
  • 语法:chown [用户] [文件或目录]

把 /var/run/httpd.pid 的所有者设置 root:

<span class="linenum hljs-number">1</span>chown&#xA0;root&#xA0;/<span class="hljs-keyword">var</span>/run/httpd.pid

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

<span class="linenum hljs-number">1</span><span class="hljs-selector-tag">chown</span>&#xA0;<span class="hljs-selector-tag">runoob</span><span class="hljs-selector-pseudo">:runoobgroup</span>&#xA0;<span class="hljs-selector-tag">file1</span><span class="hljs-selector-class">.txt</span>

将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

<span class="linenum hljs-number">1</span><span class="hljs-selector-tag">chown</span>&#xA0;<span class="hljs-selector-tag">-R</span>&#xA0;<span class="hljs-selector-tag">runoob</span><span class="hljs-selector-pseudo">:runoobgroup</span>&#xA0;*

把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:

<span class="linenum hljs-number">1</span><span class="hljs-attribute">chown</span>&#xA0;:<span class="hljs-number">512</span>&#xA0;/home/runoob

chgrp

  • 命令名称:chgrp
  • 英文原意:change file group ownership
  • 执行权限:所有用户
  • 功能描述:改变文件或目录的所属组
  • 语法:chgrp [用户组] [文件或目录]
  • 选项:
  • -v或–verbose 显示指令执行过程。
  • -c或–changes 效果类似”-v”参数,但仅回报更改的部分。
  • -f或–quiet或–silent 不显示错误信息。
  • -R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
  • -h或–no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。

与chown命令不同,chgrp 允许普通用户改变文件所属的组,只要该用户是该组的一员。

实例1: 改变文件的群组属性

命令:

chgrp -v bin log2012.log

输出:

<span class="linenum hljs-number"> 1</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">ll</span><br><span class="linenum hljs-number"> 2</span><br><span class="linenum hljs-number"> 3</span><span class="hljs-selector-tag">---xrw-r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;302108&#xA0;11<span class="hljs-selector-tag">-13</span>&#xA0;06<span class="hljs-selector-pseudo">:03</span>&#xA0;<span class="hljs-selector-tag">log2012</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number"> 4</span><br><span class="linenum hljs-number"> 5</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">chgrp</span>&#xA0;<span class="hljs-selector-tag">-v</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;<span class="hljs-selector-tag">log2012</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number"> 6</span><br><span class="linenum hljs-number"> 7</span>&#x201C;<span class="hljs-selector-tag">log2012</span><span class="hljs-selector-class">.log</span>&#x201D;&#xA0;&#x7684;&#x6240;&#x5C5E;&#x7EC4;&#x5DF2;&#x66F4;&#x6539;&#x4E3A;&#xA0;<span class="hljs-selector-tag">bin</span><br><span class="linenum hljs-number"> 8</span><br><span class="linenum hljs-number"> 9</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">ll</span><br><span class="linenum hljs-number">10</span><br><span class="linenum hljs-number">11</span><span class="hljs-selector-tag">---xrw-r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;302108&#xA0;11<span class="hljs-selector-tag">-13</span>&#xA0;06<span class="hljs-selector-pseudo">:03</span>&#xA0;<span class="hljs-selector-tag">log2012</span><span class="hljs-selector-class">.log</span>

说明:

将log2012.log文件由root群组改为bin群组

实例2: 根据指定文件改变文件的群组属性

命令:

chgrp –reference=log2012.log log2013.log

输出:

<span class="linenum hljs-number"> 1</span>[root@localhost&#xA0;test]<br><span class="linenum hljs-number"> 2</span><br><span class="linenum hljs-number"> 3</span>---xrw-r--&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;bin&#xA0;<span class="hljs-number">302108</span>&#xA0;<span class="hljs-number">11</span><span class="hljs-number">-13</span>&#xA0;<span class="hljs-number">06</span>:<span class="hljs-number">03</span>&#xA0;log2012.<span class="hljs-built_in">log</span><br><span class="linenum hljs-number"> 4</span><br><span class="linenum hljs-number"> 5</span>-rw-r--r--&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;root&#xA0;&#xA0;&#xA0;<span class="hljs-number">61</span>&#xA0;<span class="hljs-number">11</span><span class="hljs-number">-13</span>&#xA0;<span class="hljs-number">06</span>:<span class="hljs-number">03</span>&#xA0;log2013.<span class="hljs-built_in">log</span><br><span class="linenum hljs-number"> 6</span><br><span class="linenum hljs-number"> 7</span>[root@localhost&#xA0;test]<br><span class="linenum hljs-number"> 8</span><br><span class="linenum hljs-number"> 9</span>[root@localhost&#xA0;test]<br><span class="linenum hljs-number">10</span><br><span class="linenum hljs-number">11</span>---xrw-r--&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;bin&#xA0;<span class="hljs-number">302108</span>&#xA0;<span class="hljs-number">11</span><span class="hljs-number">-13</span>&#xA0;<span class="hljs-number">06</span>:<span class="hljs-number">03</span>&#xA0;log2012.<span class="hljs-built_in">log</span><br><span class="linenum hljs-number">12</span><br><span class="linenum hljs-number">13</span>-rw-r--r--&#xA0;<span class="hljs-number">1</span>&#xA0;root&#xA0;bin&#xA0;&#xA0;&#xA0;<span class="hljs-number">61</span>&#xA0;<span class="hljs-number">11</span><span class="hljs-number">-13</span>&#xA0;<span class="hljs-number">06</span>:<span class="hljs-number">03</span>&#xA0;log2013.<span class="hljs-built_in">log</span>

说明:

改变文件log2013.log 的群组属性,使得文件log2013.log的群组属性和参考文件log2012.log的群组属性相同

实例3:改变指定目录以及其子目录下的所有文件的群组属性

命令:

输出:

<span class="linenum hljs-number"> 1</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">ll</span><br><span class="linenum hljs-number"> 2</span><span class="hljs-selector-tag">drwxr-xr-x</span>&#xA0;2&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;&#xA0;4096&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">test6</span><br><span class="linenum hljs-number"> 3</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">cd</span>&#xA0;<span class="hljs-selector-tag">test6</span><br><span class="linenum hljs-number"> 4</span><span class="hljs-selector-attr">[root@localhost&#xA0;test6]</span>#&#xA0;<span class="hljs-selector-tag">ll</span><br><span class="linenum hljs-number"> 5</span><span class="hljs-selector-tag">---xr--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;302108&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">linklog</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number"> 6</span><span class="hljs-selector-tag">---xr--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;302108&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2012</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number"> 7</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;&#xA0;&#xA0;61&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2013</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number"> 8</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2014</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number"> 9</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2015</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">10</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2016</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">11</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2017</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">12</span><span class="hljs-selector-attr">[root@localhost&#xA0;test6]</span>#&#xA0;<span class="hljs-selector-tag">cd</span>&#xA0;..<br><span class="linenum hljs-number">13</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">chgrp</span>&#xA0;<span class="hljs-selector-tag">-R</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;<span class="hljs-selector-tag">test6</span><br><span class="linenum hljs-number">14</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">cd</span>&#xA0;<span class="hljs-selector-tag">test6</span><br><span class="linenum hljs-number">15</span><span class="hljs-selector-attr">[root@localhost&#xA0;test6]</span>#&#xA0;<span class="hljs-selector-tag">ll</span><br><span class="linenum hljs-number">16</span><span class="hljs-selector-tag">---xr--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;302108&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">linklog</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">17</span><span class="hljs-selector-tag">---xr--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;302108&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2012</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">18</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;&#xA0;&#xA0;61&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2013</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">19</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2014</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">20</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2015</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">21</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2016</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">22</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2017</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">23</span><span class="hljs-selector-attr">[root@localhost&#xA0;test6]</span>#&#xA0;<span class="hljs-selector-tag">cd</span>&#xA0;..<br><span class="linenum hljs-number">24</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">ll</span><br><span class="linenum hljs-number">25</span><span class="hljs-selector-tag">drwxr-xr-x</span>&#xA0;2&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">bin</span>&#xA0;&#xA0;4096&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">test6</span><br><span class="linenum hljs-number">26</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#

说明:

改变指定目录以及其子目录下的所有文件的群组属性

实例4:通过群组识别码改变文件群组属性

命令:

chgrp -R 100 test6

输出:

<span class="linenum hljs-number"> 1</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">chgrp</span>&#xA0;<span class="hljs-selector-tag">-R</span>&#xA0;100&#xA0;<span class="hljs-selector-tag">test6</span><br><span class="linenum hljs-number"> 2</span><br><span class="linenum hljs-number"> 3</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">ll</span><br><span class="linenum hljs-number"> 4</span><br><span class="linenum hljs-number"> 5</span><span class="hljs-selector-tag">drwxr-xr-x</span>&#xA0;2&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">users</span>&#xA0;&#xA0;4096&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">test6</span><br><span class="linenum hljs-number"> 6</span><br><span class="linenum hljs-number"> 7</span><span class="hljs-selector-attr">[root@localhost&#xA0;test]</span>#&#xA0;<span class="hljs-selector-tag">cd</span>&#xA0;<span class="hljs-selector-tag">test6</span><br><span class="linenum hljs-number"> 8</span><br><span class="linenum hljs-number"> 9</span><span class="hljs-selector-attr">[root@localhost&#xA0;test6]</span>#&#xA0;<span class="hljs-selector-tag">ll</span><br><span class="linenum hljs-number">10</span><br><span class="linenum hljs-number">11</span><span class="hljs-selector-tag">---xr--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">users</span>&#xA0;302108&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">linklog</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">12</span><br><span class="linenum hljs-number">13</span><span class="hljs-selector-tag">---xr--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">users</span>&#xA0;302108&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2012</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">14</span><br><span class="linenum hljs-number">15</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">users</span>&#xA0;&#xA0;&#xA0;61&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2013</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">16</span><br><span class="linenum hljs-number">17</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">users</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2014</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">18</span><br><span class="linenum hljs-number">19</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">users</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2015</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">20</span><br><span class="linenum hljs-number">21</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">users</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2016</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">22</span><br><span class="linenum hljs-number">23</span><span class="hljs-selector-tag">-rw-r--r--</span>&#xA0;1&#xA0;<span class="hljs-selector-tag">root</span>&#xA0;<span class="hljs-selector-tag">users</span>&#xA0;&#xA0;&#xA0;0&#xA0;11<span class="hljs-selector-tag">-30</span>&#xA0;08<span class="hljs-selector-pseudo">:39</span>&#xA0;<span class="hljs-selector-tag">log2017</span><span class="hljs-selector-class">.log</span><br><span class="linenum hljs-number">24</span><br><span class="linenum hljs-number">25</span><span class="hljs-selector-attr">[root@localhost&#xA0;test6]</span>#

说明:

通过群组识别码改变文件群组属性,100为users群组的识别码,具体群组和群组识别码可以去/etc/group文件中查看

umask默认权限

当我们新建一个文件或者文件夹时,系统都会默认设置权限,默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644,建立的目录的默认权限是755,可以通过建立一个文件和文件夹通过 ls -l验证。

当我们登录系统之后创建一个文件是会有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。

<span class="linenum hljs-number">1</span>umask&#xA0;[<span class="hljs-string">-S</span>][<span class="hljs-symbol">&#x6743;&#x9650;&#x63A9;&#x7801;</span>]
  • -S 以文字的方式来表示权限掩码。

使用指令”umask”查看当前权限掩码,则输入下面的命令:

<span class="linenum hljs-number">1</span><span class="hljs-built_in">umask</span>

执行上面的指令后,输出信息如下:

<span class="linenum hljs-number">1</span>0022

接下来,使用指令”mkdir”创建一个目录,并使用指令”ls”获取该目录的详细信息,输入命令如下:

<span class="linenum hljs-number">1</span><span class="hljs-attribute">mkdir</span>&#xA0;test1&#xA0;<br><span class="linenum hljs-number">2</span>ls&#xA0;&#x2013;d&#xA0;&#x2013;l&#xA0;test1/

得到结果显示,该文件夹的权限为 drwxr-xr-x。即755。

对于文件和目录来说, 最大的权限其实都是777,但是执行权限对于文件来说是很危险的,而对目录来说执行权限是个基本权限。所以默认目录的最大权限是777,而文件的默认最大权限就是666。

对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111),022权限二进制码为(000)(010)(010)。

  • 所有权限二进制的1:代表有这个权限
  • umask二进制1:代表要去掉这个权限,不管你原来有没有权限,你最终一定没有这个权限。
  • umask二进制的0:代表我不关心对应位的权限,你原来有权限就有权限,没有就没有, 我不影响你。

umask为022的目录默认权限计算方法

所有者 r 所有者 w 所有者 x 所在组 r 所在组 w 所在组 x 其他 r 其他 w 其他 x 所有权限777 1 1 1 1 1 1 1 1 1 umask掩码022 0 0 0 0 1 0 0 1 0 计算后的值 1 1 1 1 0 1 1 0 1

umask为022的文件默认权限计算方法

所有者 r 所有者 w 所有者 x 所在组 r 所在组 w 所在组 x 其他 r 其他 w 其他 x 所有权限666 1 1 0 1 1 0 1 1 0 umask掩码022 0 0 0 0 1 0 0 1 0 计算后的值 1 1 0 1 0 0 1 0 0

umask为023的目录默认权限计算方法

所有者 r 所有者 w 所有者 x 所在组 r 所在组 w 所在组 x 其他 r 其他 w 其他 x 所有权限777 1 1 1 1 1 1 1 1 1 umask掩码023 0 0 0 0 1 0 0 1 1 计算后的值 1 1 1 1 0 1 1 0 0

umask为023的文件默认权限计算方法

所有者 r 所有者 w 所有者 x 所在组 r 所在组 w 所在组 x 其他 r 其他 w 其他 x 所有权限666 1 1 0 1 1 0 1 1 0 umask掩码023 0 0 0 0 1 0 0 1 1 计算后的值 1 1 0 1 0 0 1 0 0

上面就是一个umask的正常计算过程,但是这样实在是太麻烦了。我们使用如下的简单的方法快速计算。

  • 对于目录,直接使用777-umask即可,就得到了最终结果。
  • 对于文件,先使用666-umask。
  • 如果对应位上为偶数:最终权限就是这个偶数值。
  • 如果上面的对应为上有奇数,就对应位+1。

上面的这个方法计算是非常方便的, 为何得到奇数要+1呢。

文件的最大权限是666,都是偶数,你得到奇数,说明umask有奇数,读为4,写为2,都是偶数,说明你有执行权限的。

就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限。所以结果加1。

Original: https://www.cnblogs.com/kylinxxx/p/14794245.html
Author: 猫坚果NutCat
Title: Linux学习笔记:Linux命令之权限管理命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591150/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • webgl纹理贴图机制

    文章目录 前言 纹理图片大小规范 纹理坐标系统 贴图流程 * JavaScript部分 – 齐次坐标—uv坐标数据准备 加载外部纹理图像 纹理配置加载 着色器部分 &#…

    Python 2023年11月5日
    055
  • 使用QuerySet新增和更新数据

    (一)Shell模式新增数据Django提供了多种数据新增方法,开发者可以根据实际情况以及个人使用习惯选择某一种新增方式。为了更好地演示数据库的增、删、改操作,在项目babies使…

    Python 2023年8月5日
    088
  • 天猫订单数据分析

    项目说明 数据说明 本数据集共收集了发生在一个月内的28010条数据,包含以下字段:[‘订单编号’, ‘总金额’, ‘买…

    Python 2023年8月8日
    074
  • Pandas库学习

    一、Pandas是什么 Pandas 是 Python 语言的一个扩展程序库,用于数据分析。Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算…

    Python 2023年8月18日
    062
  • python求一列和并添加新列_python中pandas.DataFrame对行与列分享和及添加新行与列示例…

    python中怎样在dataframe变量中增加一列 需要在dataframe变量(df)中增加一列(columC)数据,这列数据的值和df在Python中怎么在一个原有的Data…

    Python 2023年8月17日
    048
  • redis操作

    关系型数据库: MySQL MySQL的缺陷: 1. 读取的时候相对较快, 但是写入数据是比较慢的, 读取速度是1w/s. 写入速度: 1000/s。 2. 读写时容易混淆,会读取…

    Python 2023年8月6日
    044
  • Python 数据可视化基础教程

    安装 install 首先进入python官网安装python 安装matplotlib模块(画图拓展包) 打开电脑命令行cmd输入: pip install matplotlib…

    Python 2023年9月1日
    054
  • NumPy 数据类型对象(dtype)的构造

    一、数据类型对象 numpy.dtype 类的实例用来描述数组项的组成形式。包括内存块字节数、数据类型等等。 在 NumPy 中描述标量数据的类型,有整数、浮点数等不同精度的几个内…

    Python 2023年8月23日
    071
  • 【机器学习】手写数字识别

    前言 logistic回归,是一个分类算法,可以处理二元分类,多元分类。我们使用sklearn中的logistic对手写数字识别进行实践。 数据集 MNIST数据集来自美国国家标准…

    Python 2023年5月23日
    0101
  • 使用pandas对超大csv文件进行快速拆分

    文章目录 前言 1. 操作步骤 * 1.1 安装pandas 1.2 拆分大文件 2. 再多了解一点儿 * 2.1 pandas读取csv文件后,返回的是什么类型? 2.2 如何从…

    Python 2023年8月16日
    048
  • PyCharm二维数据帧的创建即应用

    import numpy as np import pandas as pd 1.创建数据帧 (1):用list创建(列表) date=[[‘sam’,18,’M’],[‘Amy’…

    Python 2023年8月9日
    059
  • python做小游戏之一小迷宫游戏

    趣味python一迷宫小游戏 读取外部迷宫地图 既然是编写小游戏,那么自然少不了pygame模块,编译环境使用的是pycharm。 迷宫小游戏设计思想是,我们自己绘制迷宫地图文档,…

    Python 2023年9月17日
    040
  • pandas#03-时间序列

    文章目录 生成一段时间范围 * 关于频率的更多缩写 在DataFrame中使用时间序列 * pandas重采样 生成一段时间范围 pd.date_range(start=None,…

    Python 2023年8月17日
    054
  • python实验四_实验四 · Python程序设计/20193117whm – Gitee.com

    import pygame import time pygame.init() ck = pygame.display.set_mode((800,600)) # 游戏窗口 bac…

    Python 2023年9月24日
    066
  • 全国新冠疫情web小项目,优化!优化!优化!

    文章目录 * – + 一、背景 + * 1.1、调整原来的项目结构 + 二、新增/优化功能 + * 2.1、新增logger模块 * 2.2、实时刷新数据 + 三、总结…

    Python 2023年8月13日
    051
  • JDK 自带的服务发现框架 ServiceLoader 好用吗?

    请点赞关注,你的支持对我意义重大。🔥 Hi,我是小彭。本文已收录到Github · AndroidFamily 中。这里有 Android 进阶成长知识体系,有志同道合的朋友,关注…

    Python 2023年10月22日
    042
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球