zoukankan      html  css  js  c++  java
  • Linux权限管理

    学习路线如下

    image

    一、文件的权限

    1.权限的概述

        ·权限是指某个计算机用户具有使用软件资源的权利。

        ·文件资源所拥有的相关权限就是文件权限

    2.权限的分类

    1)普通权限

        用户正常情况去操作文件所具有的权限。

    2)高级权限

        用户对某个文件操作有特殊权限,而普通权限不能满足,需要给文件设置高级权限。

    3)默认权限

        用户在系统中创建一个文件,该文件默认都会有一个权限,该权限是默认有的。

    注:权限是设置在文件上的,而不是用户

    二,普通权限

    1.rwx权限的含义

    1)读权限——r(read)

        针对目录

              一个目录拥有r权限,说明可以查看该目录里的内容(ls命令列出)

        针对普通文件

             一个普通文件拥有r权限,说明可以查看该文件的内容(cat/head/tail/less/more等命令)

        读权限r(read)用数字表示是4

    2)写权限——w(write)

        针对目录
               一个目录拥有w权限,说明可以在该目录里创建、删除、重命名等操作(mkdir/touch/mv/rm等)
           针对普通文件
                 一个普通文件拥有w权限,说明可以修改该文件的内容(vi/vim编辑器编辑文件)
           写权限w(write)用数字表示是2

    3)执行权限——x(execute)

        针对目录
             
    一个目录拥有x权限,说明可以进入或切换到该目录里(cd命令)
         针对普通文件
             
    普通文件拥有x权限,说明可以执行该文件(一般程序文件、脚本文件、命令都需要执行权限
    执行权限x(execute)用数字表示是1

    4)没有权限——横杠

               没有任何权限用横杠-表示,数字表示是0

    三、UGO的含义

    UGO,指的是用户身份,每个字母代表不同的用户身份。
    U(the user who owns it)
    文件的拥有者(owner)或者创建者
    G(other users in the file’s group)
    在文件的所属组(默认是创建文件的用户的主组)里的用户
    O(other users not in the file’s group)

    既不是文件的创建者,也不在文件属组里的用户,称为其他人
    注意:
    除了上面ugo以外,还有一个字母a(all users),表示所有用户,包含ugo

    四、如何判断不同身份的用户对文件的权限

    1.使用ls命令进行查看

    [root@jiangfeng ~]# ll
    total 11524
    -rwxr-xr-x 1 root root      284 Jul 12 20:23 backup.sh
    -rw-r--r-- 1 root root 11790600 Jul  7 14:59 ComsenzDiscuz-DiscuzX-master.zip
    drwxr-xr-x 5 root root     4096 Feb  6 12:12 DiscuzX

    2.使用stat命令进行查看

    [root@jiangfeng ~]# stat backup.sh 
      File: `backup.sh'
      Size: 284           Blocks: 8          IO Block: 4096   regular file
    Device: fc01h/64513d    Inode: 396773      Links: 1
    Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2019-07-12 20:44:07.985886357 +0800
    Modify: 2019-07-12 20:23:06.404696436 +0800
    Change: 2019-07-12 20:23:06.407696553 +0800

    五、修改文件的普通权限(chmod)

    a.修改三类用户的权限
        chmod 655 file,...
        选项:    -R:修改目录及其内部文件的权限
    b.修改某类用户或某些用户的权限
        类别:u,g,o,a
        格式:    chmod 用户类别=权限 file,...
            chmod 用户类别+(-)权限 file,...

    六、高级权限的作用和设置

    1.冒险位(SETUID)

        冒险位,指文件操作者(用户)临时拥有文件拥有者的权限
         冒险位,一般针对的是命令或者脚本文件
         冒险位,用字母表示是s或S;数字表示是4
         冒险位的设置: chmod u+s 文件名 或者 chmod 4xxx 文件名

    2.强制位(SETGID)
         强制位,一般针对的是目录
         如果一个目录拥有强制位,那么任何用户在该目录里所创建的任何文件的属组都会继承该目录的属组。
         强制位,用字母表示是s或S;数字表示是2
         强制位的设置: chmod g+s 文件名 或者 chmod 2xxx 文件名

    3.粘滞位(STICKY)
         粘滞位,一般针对的是公共目录
         如果一个公共目录拥有粘滞位,那么该目录下的文件,只有root和文件的创建者可以删除,其他人只能自己管理自己。(A用户不能删除B用户创建的文件)
         粘滞位,用字母表示是t或T;数字表示是1
         粘滞位的设置: chmod o+t 文件名 或者 chmod 1xxx 文件名

    注:

        冒险位针对命令;chmod 4xxx  文件名

        强制位针对目录;chmod 2xxx  目录名

        粘滞位针对公共目录;chmod 1777  公共目录

    七、默认权限和umask

        当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、$[HOME]/.profile或$[HOME]/.bashrc中设置umask值。

        系统默认普通用户umask为:0002,root用户umask为:0022.

    [root@jiangfeng ~]# umask
    0022
    [root@jiangfeng ~]# su - jiangfeng
    [jiangfeng@jiangfeng ~]$ umask
    0002

    八、文件的属主和属组

    image

    chown 用户名 文件名
    修改文件的属主和属组
    chown 用户名.组名 文件名
    chown 用户名:组名 文件名
    
    只修改文件的属组
    chown .组名 文件名
    chown :组名 文件名
    可以加-R选项,表示递归修改

    九、ACL策略

        当你想要对某个文件针对某个用户添加权限时,可以通过ACL访问策略进行权限的更改

    setfacl [-bkndRLP] { -m|-M|-x|-X ... } file
    
    常用选项:
    -m 修改或者设置ACL策略
    -R 递归授权,对目录下已存在的目录或文件有acl策略,但新建的文件没有
    -x 去掉某个用户或者某个组的权限
    -b 删除所有的acl策略
    -d 默认ACL策略,只针对目录,该目录下新建的目录和文件都会继承acl策略
    mask: 定义除其他人和所有者外的最大权限
    
    示例:
    ​    setfacl -m u:harry:rwx /shared/sysadmin
  • 相关阅读:
    Python反射机制
    并发和并行的区别
    I/O模型
    python 字符串零散方法记录
    python 关于占位符格式化
    Python 十进制转二进制、八进制、十六进制
    python中str函数isdigit、isdecimal、isnumeric的区别
    文件的修改
    LF 模块三
    stackoverflow os.path.abspath and os.path.realpath
  • 原文地址:https://www.cnblogs.com/feng0919/p/11182646.html
Copyright © 2011-2022 走看看