美文网首页
权限管理

权限管理

作者: 心疼你萌萌哒 | 来源:发表于2018-04-26 19:23 被阅读0次

    一、基本权限(UGO)

    1 权限对象 
     属主: u
     属组: g
     其他人: o
     所有人: a(u+g+o)
    
    2 权限类型(r,w,x)数字表示(4,2,1)
    2.1设置权限:
    =chown: 设置一个文件属于谁,属主
    语法:                      chwon   用户名.组名   文件
    [root@localhost ~]# chown alice.hr file1 //改属主、属组
    [root@localhost  ~]# chown alice file1 //只改属主
    [root@localhost ~]# chown .hr file1 //只改属组
    =chgrp: 设置一个文件属于哪个组,属组
    语法:            chgrp   组名   文件      -R是递归的意思
    [root@localhost ~]# chgrp it file1 //改文件属组
    [root@localhost ~]# chgrp -R it dir1 //改文件属组
    

    示例1:

    针对hr部门的访问目录设置权限,要求如下:
    1. root用户和hr组的员工可以读、写、执行
    2. 其他用户没有任何权限
    操作思路:
    1创建组
    2创建用户
    3修改属主和属组
    4设置权限
    操作如下:
    [root@localhost ~]# groupadd hr
    [root@localhost ~]# useradd hr01 -G hr
    [root@localhost ~]# useradd hr02 -G hr
    [root@localhost ~]# mkdir /home/hr
    
    [root@localhost ~]# chgrp hr /home/hr
    [root@localhost ~]# chmod 770 /home/hr
    [root@localhost ~]# ll -d /home/hr/
    drwxrwx---. 2 root hr 4096 3月 13 14:26 /home/hr/
    

    例子2:

    1.r、w、x权限对文件和目录的意义?
    
    image.png

    二、基本权限ACL

    原理:

    acl权限中有个"mask"的选项,它就是ACL权限的最大权限,现在是rwx,当你设置某个用户或组的ACL权限时,要跟mask的权限“相与”之后产生的权限才是该用户的最终权限,也就是加入mask的最大权限是rx,但是你给st用户设置的是rwx权限,此时st用户它的权限只有rx的权限,因为与最大权限“相与”得出的结果就是rx

    图示:

    image.png

    生产案例:

    生产环境中,常用于临时降低用户或组(除属主和其他人)的权限
    
    请注意文件基本权限。
    1 创建用户(便于测试)
    2 创建两个文件(设置其中一个文件的权限掩码)
    [root@tianyun ~]# setfacl   -m   m::---    /tmp/file1.txt
    3 删除基本权限
    chmod o= /tmp/file1
    4 使用账户进行测试
    file1.txt没有权限。file2.txt有只读权限。
    

    继承案例:

    default: 继承(默认)
    要求: 希望alice能够对/home以及以后在/home下新建的文件有读、写、执行权限
    
    思路:
    步骤一: 赋予alice对/home读、写、执行权限
    [root@tianyun ~]# setfacl -m u:alice:rwx /home
    
    步骤二: 赋予alice对以后在/home下新建的文件有读、执行权限 (使alice的权限继承)
    d     default     继承  
    [root@tianyun ~]# setfacl -m d:u:alice:r-x /home
    

    二、高级权限

    高级权限的类型:suid=4 sgind=2 sticky=1
    suid,sgid针对文件程序时,具备临时提升权限
    sgid针对目录时,该目录具备继承属组的特性
    sticky针对目录设置,该目录中的内容只有root和属主能够删除
    

    例子1 :普通用户通过suid提权(针对文件)

    suid   普通用户通过suid提权     <针对文件>
    在进程文件(二进制,可执行)上增加suid权限
    [root@tianyun ~]# chmod u+s /usr/bin/cat
    [alice@tianyun ~]$ cat /root/file1.txt
    请在试验后,将cat的suid权限除去。
    

    示例2:sticky 用户只能删除自己的文件 <针对目录>

    [root@tianyun ~]# mkdir /home/dir1
    [root@tianyun ~]# chmod 777 /home/dir1
    测试:user1在/home/dir1建立文件, user2尝试删除!
    
    [root@tianyun ~]# chmod o+t /home/dir1
    [root@tianyun ~]# ll -d /home/dir1
    rwxrwxrwt 2 root root 4096 09-02 02:26 /home/dir1
    谁可以删除:
    root
    文件的所有者
    目录的所有者
    

    文件chattr属性

    文件权限管理之: 文件属性
    注:设置文件属性(权限),针对所有用户,包括root
    1 先创建三个文件进行对比。查看默认权限。
    [root@tianyun ~]# touch file100 file200 file300 file400
    [root@tianyun ~]# lsattr file100 file200 file300 
    -------------- file100
    -------------- file200
    -------------- file300
    2 加上不同属性。
    [root@tianyun ~]# man chattr
    [root@tianyun ~]# chattr +a file100             //只能追加
    [root@tianyun ~]# chattr +i file200             //不能更改,重命名,删除
    [root@tianyun ~]# chattr +A file300         //不能更改访问时间。
    3 查看不同属性
    [root@tianyun ~]# lsattr file100 file200 file300 
    -----a-------e- file100
    ----i--------e- file200
    -------A-----e- file300
    4 尝试追加,删除,更改。100不能覆盖,200不能删除,300改了不计时间。
    [root@tianyun ~]# echo 111 > file100                 //以覆盖的方式写入
    bash: file100: Operation not permitted
    [root@tianyun ~]# rm -rf file100 
    rm: cannot remove `file100': Operation not permitted
    [root@tianyun ~]# echo 111 >> file100               //以追加的方式写入,例如日志文件
    
    [root@tianyun ~]# echo 111 > file200
    bash: file200: Permission denied
    [root@instructor ~]# echo 111 >> file200
    bash: file200: Permission denied
    [root@tianyun ~]# rm -rf file200 
    rm: cannot remove `file200': Operation not permitted
    
    5 记录file300 和file400 访问时间
    [root@localhost ~]# stat file300 file400
    观察两个文件的访问时间。截图
    
    6 更改和访问文件。
    [root@localhost ~]# date 06010000
    2018年 06月 01日 星期五 00:00:00 CST
    [root@localhost ~]# echo 111 >> file300
    [root@localhost ~]# echo 111 >> file400
    [root@localhost ~]# cat file300  file400
    
    7 观察file300 和file400 访问变化时间
    [root@localhost ~]# stat file300 file400
    对比第五步文件访问的信息。300没有变化,400有变化。
    理解-A锁定了访问时间。
    
    6 将属性还原。
    [root@tianyun ~]# chattr -a file100
    [root@tianyun ~]# chattr -i file200
    [root@tianyun ~]# chattr -A file300
    

    >进程掩码mask umask

    示例1:观察系统默认掩码
    示例1: 在shell进程中创建文件
    [root@tianyun ~]# umask                                     //查看当前用户的umask权限
    0022
    [root@tianyun ~]# touch file800
    [root@tianyun ~]# mkdir dir800
    [root@tianyun ~]# ll -d dir800 file800 
    drwxr-xr-x. 2 root root 4096 3月  11 19:40 dir800
    -rw-r--r--. 1 root root    0 3月  11 19:40 file800
    
    示例2:临时修改shell umask
    示例2:修改shell umask值(临时)
    [root@tianyun ~]# umask 000
    [root@tianyun ~]# mkdir dir900
    [root@tianyun ~]# touch file900
    [root@tianyun ~]# ll -d dir900 file900 
    drwxrwxrwx. 2 root root 4096 3月  11 19:44 dir900
    -rw-rw-rw-. 1 root root    0 3月  11 19:44 file900
    
    示例3:修改shell umask值(永久 建议不要)
    示例3:修改shell umask值(永久 建议不要)
    [root@tianyun ~]# vim /etc/profile   
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002
    else
        umask 022
    fi
    [root@tianyun ~]# source /etc/profile       //立即在当前shell中生效
    
    示例4:通过umask决定新建用户HOME目录的权限
    示例4:通过umask决定新建用户HOME目录的权限
    [root@tianyun ~]# vim /etc/login.defs 
    UMASK           077
    [root@tianyun ~]# useradd gougou
    [root@tianyun ~]# ll -d /home/gougou/
    drwx------. 4 gougou gougou 4096 3月  11 19:50 /home/gougou/
    
    [root@tianyun ~]# vim /etc/login.defs
    UMASK           000
    [root@tianyun ~]# useradd yangyang
    [root@tianyun ~]# ll -d /home/yangyang/
    drwxrwxrwx. 4 yangyang yangyang 4096 3月  11 19:53 /home/yangyang/
    
    示例5:例如vsftpd进程
    /etc/vsftpd/vsftpd.conf 【了解】
    示例5:例如vsftpd进程 /etc/vsftpd/vsftpd.conf 【了解】
    [root@tianyun ~]# yum -y install vsftpd
    [root@tianyun ~]# man vsftpd.conf
    anon_umask
    local_umask
    

    相关文章

      网友评论

          本文标题:权限管理

          本文链接:https://www.haomeiwen.com/subject/ekymlftx.html