zoukankan      html  css  js  c++  java
  • 高级权限 acl

    昨天内容回复

    1、hash算法

                        一串内容------------hash算法-----------》hash值

           hash值

                      1传入算法内容相同,hash值一定相同     

                      2、hash值不逆推

                      3、hash值的长度取决采用的算法,与传入的内容无关

             用途:
                     1,2=》密码加密
                     1,3=》校验文件的完整性

             常见:
                     md5
                     sha512

    2、权限
                文件
                       r:读文件内容
                     w:修改文件内容
                      x:执行文件

               目录:
                       r:浏览
                     w:创建、删除、移动子文件与子目录
                      x:进入该目录

                      操作目录下的东西:对沿途所有目录有x权限+对目标目录有r或w权限
                      操作文件的内容:对沿途所有目录有x权限+对目标文件有r或w权限
                      执行文件:对沿途所有目录有x权限+对目标文件有x权限,如果是解释型程序还需配合r

                                                                                                                                       

    修改权限:
    1、加减法
                    chmod u+rwx,g+rwx,o+rw a.txt
                    chmod (a 全部的意思)a-rw a.txt
    2、赋值
                 chmod u=x,g=x,o=x a.txt
                 chmod a=x a.txt
    3、数字
                 chmod u=rw,g=rwx,o=x a.txt
                 chmod 671 a.txt

    修改属主与属组
                             chown 属主.属组 a.txt

    -R


    特殊:
            suid # 4755
            chmod u+s 命令文件 (第一个 s 是尚方宝剑,当普通用户使用时就可以获得该命令主人的权限)


            sgid # 2755
            chmod g+s 命令文件 (第二个 s 作用在文件身上与第一个功能相似,获得该组的权限)
            chmod g+s 目录(作用在目录身上,当你在有s的目录下创建子目录子子目录,这些子目录子子目录的属组都会是带有s这个父目录的属组)


            sticky # 1755
            chmod o+t 共享目录 

    目录---》777
    文件---》666

    root用户下的umask值:022

                                                                                                                                                                                     

    今日内容:
                  1、高级权限acl
                                           修改属主的权限
                                           setfacl -m u::权限 a.txt

                                           修改属组的权限
                                           setfacl -m g::权限 a.txt

                                          修改其他人的权限
                                          setfacl -m o::权限 a.txt

                                          修改具体某一个用户的权限
                                          setfacl -m u:用户名:权限 a.txt

                                          修改具体某一个组的权限
                                          setfacl -m g:组名:权限 a.txt


                                 继承:
                                         setfacl -m d:u:egon01:rw a.txt

    应用场景:
    1、其他人对文件没有任何权限,然后单独设置其他人里的egon01对文件有r权限、egon02对文件有w权限
    setfacl -b b.txt

    setfacl -m o::- b.txt
    setfacl -m u:egon01:r b.txt
    setfacl -m u:egon02:w b.txt


    2、其他人对文件有rw权限,然后单独设置其他人里的egon01对文件有r权限、egon02对文件有w权限
    setfacl -b b.txt

    setfacl -m o::rw b.txt
    setfacl -m u:egon01:r b.txt
    setfacl -m u:egon02:w b.txt


    实验:
    [root@web01 ~]# pwd
    /root
    [root@web01 ~]# echo 1111 > b.txt
    [root@web01 ~]# getfacl b.txt
    # file: b.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    other::r--

    [root@web01 ~]# setfacl -m o::- b.txt
    [root@web01 ~]# setfacl -m u:egon01:r b.txt
    [root@web01 ~]# setfacl -m u:egon02:w b.txt
    [root@web01 ~]# getfacl b.txt
    # file: b.txt
    # owner: root
    # group: root
    user::rw-
    user:egon01:r--
    user:egon02:-w-
    group::r--
    mask::rw-
    other::---

    [root@web01 ~]# su - egon01 -c "cat /root/b.txt"
    1111
    [root@web01 ~]# su - egon01 -c "echo 222 >> /root/b.txt"
    -bash: /root/b.txt: 权限不够
    [root@web01 ~]# su - egon02 -c "cat /root/b.txt"
    cat: /root/b.txt: 权限不够
    [root@web01 ~]# su - egon02 -c "echo 222 >> /root/b.txt"
    [root@web01 ~]#


    2、特殊属性
    +i ()
    +a
    +A

    3、让普通用户具备管理员权限
    1、su切换用户身份:从一个用户切换到另外一个用户
    储备知识:
    1、linux中shell分为两种级别:
    登录级别shell:/etc/profile--->/etc/profile.d/*.sh--->~/.bash_profile--->~/.bashrc--->/etc/bashrc
    1、输入账号密码登录进来
    2、su - 用户名 (管理员root切换到普通用户下无需输入密码,反之需要)


    非登录级别shell: ~/.bashrc---->/etc/bashrc----->/etc/profile.d/*.sh
    1、su 用户名



    如果想针对所有用户以及登录与非登录shell设置统一的配置----》/etc/bashrc
    [root@web01 ~]# vim /etc/bashrc
    [root@web01 ~]# source /etc/bashrc # 当前环境让该文件生效
    或者重启也可以生效

    /etc/profile------------->登录级别的所有用户




    ps:shell的使用分类两种
    交互式
    非交互式


    2、sudo提权:不切换用户,即用户身份不变,但是可以获取root的部分管理权限

    在管理员下修改配置文件/etc/sudoers来分配权限
    vim /etc/sudoers # 风险高
    visudo -c # 检查语法

    visudo # 不需要加文件路径



    3、总结
    su:
    特点:直接切换到root账号下进行操作,输入的是root的密码
    优点:简单粗暴
    缺点:root密码泄露,普通用户获取了所有管理权限

    sudo
    特点:在当前普通用户下进行操作,不需要切换到root账号下,在执行操作命令格式为:sudo 命令,输入的是普通用户自己的密码
    优点:root密码没有泄露,普通用户获取了部分管理权限
    缺点:相对复杂




    用户 主机ip或主机名=(转成的用户身份) 管理命令
    egon01 ALL=(ALL) /usr/sbin/ifconifg
    egon01 ALL=(ALL) NOPASSWD:/usr/sbin/ifconifg
    egon01 ALL=(ALL) NOPASSWD:命令的别名
    egon01 ALL=(ALL) ALL,!/usr/bin/vim /test/b.txt
    ALL代表的是服务端的IP地址,与客户端无关

                      

  • 相关阅读:
    MS SQL 错误 :17883,严重度: 1,状态: 0
    秒杀架构中高性能可扩展高可用的一点思考
    让IE10等支持classList2.0
    判定元素是否刚插入到DOM树
    accept巨坑
    for in 循环的输出顺序问题
    css斜线
    angular的directive笔记
    avalon最佳实践
    迷你MVVM框架 avalonjs 0.97发布
  • 原文地址:https://www.cnblogs.com/dachangtui/p/13903897.html
Copyright © 2011-2022 走看看