zoukankan      html  css  js  c++  java
  • day11(acl权限/特殊属性/su与sudo)

    小扩展:

    1.哈西算法加密:

    [root@localhost ~]# md5sum 1.txt 
    d41d8cd98f00b204e9800998ecf8427e  1.txt

    一:acl高级权限

    1.定义:
    ACL(Access Control List) 权限是UGO权限的扩展,ACL可以针对单⼀⽤户、单⼀⽂件或⽬录来进⾏r,w,x的权限控制,对于需要特殊权限的使⽤状况有⼀定帮助。
    目的是设置个人的权限;

    2.单一用户实现某一个权限

    如果o=rwx的话,所有的其他用户都有权限

    [root@localhost /]# setfacl -m u:user01:r /test/1.txt
    #给user01对1.txt文件设置可读权限
    [root@localhost ~]# chmod o=x /root
    设置/root目录对user-1的 -x权限
    su - user01 'vim /root/1.txt'
    #验证是否可以进行有读的权限

    也可以给目录设置

    格式:
    setfacl -m u/g/o(主,组,其他 三选1):用户名/组名/:权限 文件/目录
    (1)当属主的对应用户名时候,意思为只有该用户对该文件或目录拥有权限
    (2)当为属组时候,意思为只有

    设置过acl高级权限的在ll下有个 + 号,如下:

    [root@localhost ~]# ls -l 1.txt
    -rwxrwx---+ 1 root root 6 Mar 16 19:33 1.txt

     
    修改属主的权限
    setfacl -m u::权限 a.txt
     
    修改属组的权限
    setfacl -m g::权限 a.txt
     
    修改其他⼈的权限
    setfacl -m o::权限 a.txt
     
    3.查看和删除权限
    1)查看权限
    getfacl 1.txt    #查看文件1.txt的权限
    结果:
    [root@localhost ~]# getfacl 1.txt
    # file: 1.txt
    # owner: root
    # group: root
    user::rwx
    user:user01:r--
    group::rwx
    mask::rwx
    other::---2)删除权限
    setfacl -x g:组名 文件名/目录名  #删除个别主和组的权限
    setfacl -x u:user01 1.txt 
    setfacl -b 文件名、目录名          #删除所有的acl权限
    setfacl -b 1.txt 
    

      

    二:ACL⾼级⽤法---mask和default继承

    1.设置mask权限

    getmacl 文件名   #显示mask
    设置mask:
    setfacl -m m:rwx 文件名
    #mask像是一个过滤器,任何权限只能包含在内,超过则滤掉
    置空o权限,对用户1设置r,用户2 设置w,
    [root@localhost ~]# setfacl -m o::- 1.txt  #对所有的其他用户权限置空
    [root@localhost ~]# touch 2.txt
    [root@localhost ~]# setfacl -m u:user01:r 1.txt
    [root@localhost ~]# setfacl -m u:user02:w 1.txt 
    [root@localhost ~]# su - user01 -c 'cat /root/1.txt'
    12345
    [root@localhost ~]# su - user01 -c 'vim /root/1.txt'
    [root@localhost ~]# su - user01 -c 'echo 111 > /root/1.txt'
    -bash: /root/1.txt: Permission denied
    [root@localhost ~]# su - user02 -c 'echo 111 >/root/1.txt'

    2.default继承

    [root@localhost ~]# setfacl -m d:u:user01:rw ./a
    [root@localhost ~]# getfacl ./a/b/c/2.txt
    # file: a/b/c/2.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    other::r-x
    [root@localhost ~]# su - user01 -c 'cat /root/a/b/c/2.txt'
    12345sfsv

    格式:
    setfacl -m d:u/g:o

    三:文件权限管理--文件属性

    [root@localhost ~]# lsattr /opt/
    ---------------- /opt/1.txt
    ---------------- /opt/2.txt
    ---------------- /opt/3.txt
    
    [root@localhost ~]# [root@localhost ~]# chattr +a /opt/1.txt 
    # 允许追加内容   -a去掉内容
    
    [root@localhost ~]# chattr +i /opt/2.txt 
    # 禁⽌任何修改,有些病毒程序会对⽂件加上该权限
    
    [root@localhost ~]# chattr +A /opt/3.txt # 不更改⽂件访问时间

     四:su与sudo

     1.让普通用户拥有管理员的权限2种方法:

    (1)su切换用户身份:从一个用户切换到另外一个用户;非登录用户    su -用户名是登录用户

           

    1.
    su 和su-  加载的配置文件不同

    su的配置文件:
    ~/ .bashrc
    /etc/bashrc
    /etc/profile.d/*.sh

    su - 的配置文件
    /etc/profile
    /etc/profile.d/*.sh
    ~/ .bash_profile
    /etc/bashrc

    (2) sudo提权:不切换用户,即用户身份不变,但是可以获取部分root单位权限

        su 和sudo的区别:

    su:直接切换到用户下,输入了密码;缺点是密码容易泄露,优点是简单
    
    sudo:在当前普通用户下进行操作,不需要切换到root用户下;但是在执行操作前需要加上sudo操作 ;格式是 sudo+命令 输入密码是普通用户的密码
        通过配置sudo,我们可以实现让普通⽤户输⼊⾃⼰的密码的情况下⽽获取我们为其配置的特定权限,这样,既保证了普通⽤户拥有他想要的特定权限,
        ⼜不⾄于泄露管理root的密码。
    使用sudo,修改配置文件 :
    (1)visudo  进入并编辑配置文件,退出时候会自动检查语法
    (2)vim /etc/sudoers    #配置文件所在处
    visudo -c #检查语法是否有错误的

    在下面进行修改权限,

    格式是:用户+主机ip/主机名(转换成的用户身份) 管理命令

    下面的是:

    用户user01 对root用户或者网卡配置的权限

     

     在user01 中输入命令时候,需要在前面加上sudo:

    sudo ifconfig

     在权限设置时,如何设置除了哪些,其他都可以

     除了vim和b.txt需要密码外,其他的都不需要密码

  • 相关阅读:
    第五周学习进度
    第四周学习进度
    四则运算三
    第三周学习进度
    软件工程个人作业—四则运算2
    软件工程个人作业01
    软件工程概论—用户登录界面
    构建之法读书笔记06
    构建之法读书笔记05
    构建之法读书笔记04
  • 原文地址:https://www.cnblogs.com/dayday-up-a/p/14546143.html
Copyright © 2011-2022 走看看