3、【常用命令】权限管理命令

1、概述

  • Linux 中,所谓的“权限”就是用户能对文件或目录进行哪些操作(读、写、执行),一个文件或目录规定了什么样的用户权限,用户基于规定的权限进行操作。从一个文件或目录的角度出发,将用户分为了三大类:

1、文件或目录的所有者:简称“u”。默认情况下,文件或目录的创建者就是所有者。所有者是可以被更改的。一个文件或目录的所有者只能有一个。
比如说:在现实中,张三自己购买了一台打印机,正常情况下,张三是这个打印机的所有者。

2、文件或目录的所属组:简称“g”。为了方便对一些文件或目录的操作,可以定义一组用户,这组用户中的每一个用户对某个文件或目录拥有一样的权限。一个文件或目录的所属组只能有一个。
比如说:现实中,张三购买了一台打印机后,他可以决定跟他一个宿舍的其他同学都可以使用这台打印机,所以“同宿舍的其他同学”构成了一个组,这个组对打印机有使用权。

3、文件或目录的其他用户:简称“o”。对一个文件或目录而言,除去所有者、所属组之外的用户都是其他用户。

  • root 用户不受限制,即使文件或目录针对所有者、所属组、其他用户规定了什么样的权限,即使 root 用户包含在所有者或所属组或其他用户中,它也不会受到任何约束!

2、权限对文件与目录的作业效果

  • 用户“对文件具有r权限”与“对目录具有r权限”的含义是不同的:
对文件、目录分别的含义
  • 要正确理解,就比如说“删除文件”,不是说某个用户对这个文件有了w权限就能删除该文件,这个想法是错误的,对文件的w权限的含义是“可以修改文件内容”,而能否删除这个文件,看用户对其所在的目录是否有w权限

  • 一般情况下,对于一个目录来说,rx权限一般是共存的,“想列出目录内容的时候总不能连目录都不让进吧”。

3、更改文件或目录的权限

  • 一个文件或目录的权限只能由其所有者以及 root 用户更改,其他的用户无法更改。

  • chmod命令用来更改文件或目录的权限:

chmod 命令

第一种方式,使用字母修改权限:

注:下面的命令为任意举例,权限不一定合理
下面例子中/tmp/test-1为一个目录。

chmod g+w /tmp/test-1:给目录/tmp/test-1的所属组增加w(写)权限。`

chmod o+w,o+x /tmp/test-1:给目录/tmp/test-1的其他用户增加w(写)和x(执行)权限。当更改的权限项有多个的时候,使用,分隔且,后不允许有空格。

chmod o-w /tmp/test-1:移除其他用户对目录/tmp/test-1w(写)权限。

chmod u=rw- /tmp/test-1:将所有者对目录/tmp/test-1的权限设置为能够读、写,但不能执行。

chmod a-r /tmp/test-1:移除所有者、所属组、其他用户(即全部用户)对目录/tmp/test-1r(读)权限。

chmod -R o+w /tmp/test-1:给目录/tmp/test-1以及该目录下的所有文件和目录的其他用户增加w(写)权限。

第二种方式,使用数字修改权限:

用数字4代表r权限,用数字2代表w权限,用数字1代表x权限,用数字0表示-即没有这项权限。然后,所有者、所属组、其他用户这三类的权限,将由数字和表示。
例如:所有者的权限是rwx,则可以用数字7表示,因为;所属组的权限是r--,则可以用数字4表示;其他用户的权限是---,可以用数字0表示;最后按照ugo的顺序排列这些数字,得到740,即权限rwxr-----可以表示为740

chmod 777 /tmp/test-1:将目录/tmp/test-1的权限修改为rwxrwxrwx

4、更改文件或目录的所有者

  • chown命令:改变文件或目录的所有者
chown 命令
  • 只有 root 用户才能使用该命令改变文件或目录的所有者。

  • 文件或目录所有者变更前,拟变更的用户必须存在。

5、更改文件或目录的所属组

  • chgrp命令:
chgrp 命令

6、文件或目录的缺省(默认)权限

  • 在创建文件或目录的时候,默认的所有者为其创建者,默认的所属组为其创建者的缺省组。

  • umask命令:

umask 命令
  • -S 选项,可以用rwx以字母的形式显示默认的目录的权限

  • 在任何情况下,默认的文件权限会比默认的目录权限中少了x,对所有的用户都少了x。例如:默认的目录权限是u=rwx,g=rx,o=rx,则默认的文件权限是u=rw,g=r,o=r

  • 不使用-S选项的话,直接使用umask得到输出是一串4位的数字,也表示默认的目录权限。
    例如:0022,这串数字的含义是:

第一位:比较特殊,暂时不解释。

第二位到第四位:通过转换,可以将第二位到第四位转换为使用chmod命令时所用的“权限数字表示”。

022 -> --- -w- -w-
777 -> rwx rwx rwx
上面字母表示的权限进行一种运算即“任何与-运算得到的结果是本身、相同之间的运算得到是-”,所以转换之后,得到rwx r-x r-x,即默认的目录权限。

  • 使用umask命令,也可以更改目录或文件的缺省(默认)权限,但不建议!
    假设,要将默认的目录权限设置为r-x r-x r-x,则使用的命令是:umask 222,这个222即上述的“第二位到第四位”。

你可能感兴趣的:(3、【常用命令】权限管理命令)