Linux -- 权限管理命令

权限管理命令

  • 一个文件把 Linux 的用户分成了三类
    • 所有者 u
    • 所属组 g
    • 其他人 o
  • 权限分成三种
    • 读 r
    • 写 w
    • 执行 x

命令执行权限

/bin/

  • /bin目录下的命令是所有用户都可以执行的

/user/bin/

  • /usr/bin/目录下的命令只有管理员才能够执行

更改文件 / 目录权限 chmod

change the permissions mode of a file

  • 位置: /bin/chmod

  • 执行权限:所有用户

  • 格式 (两种方式)

    • chmod [-R] [{ugoa}{+-=}{rwx}] [文件或目录]
      • 通过组的代号 (ugo) 及加减符号修改对文件的权限
          • 表示增加指定权限
          • 表示移除指定权限
        • = 表示重新设置指定权限
      • a代表所有
    • chmod [-R] [mode=421] [文件目录]
      • mode 的值
        • 7 代表增、写、执行
        • 6 代表增、写
        • 5 代表增、执行
        • 4 代表读
        • 3 代表写、执行
        • 2 代表写
        • 1 代表执行
      • -R: 递归修改,当我们递归的创建多级目录的时候,子目录与父目录的权限信息时完全相同的,如果我们现在修改其中一个目录的权限,在不适用-R选项的情况下,该目录对应子目录的权限信息是不会同步被修改的,因此我们可以使用-R来实现多级目录下权限的同步修改。
  • 注意
    • 使用第一种方式批量处理同一个文件 / 目录的权限时,使用逗号将多个表达式并列
      • chmod u+x, o=rwx README.txt
  • 谁可以更改文件 / 文件夹权限?
    • 管理员 root
    • 文件 / 文件夹所有者

r w x 三种权限剖析

r 权限
  • 对于文件的含义
    • 可以查看文件内容
  • 对于目录的函数
    • 可以列出目录中的内容
w 权限
  • 对于文件的含义
    • 可以修改文件内容
  • 对于目录的含义
    • 可以在目录中创建、删除文件
  • 删除文件的前提是用户对文件所在的目录有 “w” 权限
x 权限
  • 对于文件的含义
    • 可以执行该文件
  • 对于目录的含义
    • 可以进入该目录

注意

  • 对于一个目录来说,其 r 权限和 x 权限基本上是同时出现的
  • 权限是由继承关系的,如果一个用户对一个目录下的文件拥有全部操作权限,但是对该目录没有任何操作权限,那么该用户是不能操作这些文件的

其他权限管理命令

更改文件或目录的所有者 chown

谁可以更改一个文件的所有者?
  • Linux 中只有root用户可以更改文件的所有者,即使是文件的所有者也无法修改文件的所有者
chown 命令

change file ownership

  • 所在路径:/bin/chown
  • 执行权限: 所有用户
  • 格式
    • chown [目标用户] [文件/目录]

更改文件或目录的所属组 chgrp

change file group ownership

  • 所在路径: /bin/chgrp
  • 执行权限: 所有用户
  • 格式
    • chgrp [用户组] [文件/目录]

显示、设置文件的缺省权限 umask

相关
  • 当我们创建一个文件或者目录的时候,这个被创建的对象是有默认的权限的一般的,
    • 创建一个新的文件,默认权限为rw-r--r--
    • 创建一个新的文件夹,默认权限是rwxr-xr-x
  • 一个文件的所有者正常来讲就是创建这个文件的用户
  • 一个用户可以有多个组,但是该用户肯定要有一个缺省组(即默认组)
    • 一个用户的缺省组只能有一个
  • 一个文件的所属组就是这个文件的所有者所在的缺省组
umask(显示、设置文件的缺省权限)

the user file-creation mask

  • 问卷路径:shell 内置命令

  • 执行权限:所有用户

  • 格式

    • umask [-S]
      • -S,大写 S,表示以 rwx 格式显示新建文件的缺省权限
      • 在不添加-S的时候,得到的是一个权限的掩码,我们将每一个数字用 7 相减,得到的就是真正的权限数据
      • 当我们需要设置缺省权限的时候,需要使用上面提到的掩码来设置。
        • 比如我们现在要设置缺省权限为rwxr-xr--754,那么对应的掩码就是023,因此我们设置缺省权限时,使用命令umask 023即可
  • 举例
[root@host ~]# umask -S u=rwx,g=rx,o=rx
[root@host ~]# 
[root@host ~]# umask  0022 [root@host ~]#
```*   **注意**
    *   在 Linux 中,使用 touch 创建的文件缺省是不能有执行权限的,因此文件的缺省权限是`u=rw,g=r,o=r`。这样是为了安全性的考虑,因为木马病毒等文件都是可执行权限

## [](http://support.i-search.com.cn/forward?goto=%23%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E7%9A%84%E5%9C%B0%E6%96%B9)需要注意的地方

1.  只有文件的所有者和超级用户可以修改文件的权限
2.  只有 root 超级用户才可以修改文件的所有者
3.  Linux 默认缺省权限是`755`
    1.  `umask -S` 得到的是`rwxr-xr-x`
    2.  `umask` 得到的是`022`