高级权限 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地址,与客户端无关

                  

原文地址:https://www.cnblogs.com/dachangtui/p/13903897.html