Linux特殊权限命令

    xiaoxiao2021-03-25  164

    Linux特殊权限命令

    1.ACL权限:

    文件就三个权限,所有者权限、组权限、其他权限 有时候不够用 这时候就需要ACL权限 用来解决用户身份不够的问题 1.查询acl权限是否开启 dumpe2fs   根分区  dump2fs是查看分区文件的详细信息 【选项 】-h  仅显示超级块中的信息,不现实磁盘块组的信息 如果没有开启acl权限 1> 使用mount 临时开启根分区的acl权限       mount  -o   remount ,acl /       //重新挂载根分区,加入acl权限 2>   永久开启acl权限,要修改配置文件/etc/fstab

    UUID=c2ca6f57-b15c-43ea=bca0-f239083d8bd2 / ext4 defaults,acl 1(#启动是否需要检测) 1(#启动是否需要备份) #加入acl

    mount -o remount / #重新挂载文件系统或重启系统,使修改生效

    查看和设定acl权限

    getfacl 文件名 // 查看ACL权限 setfacl 【选项】 文件名 //设置ACL权限 -m:设定ACL权限; -x:删除指定的ACL权限; -b:删除所有的ACL权限; -d:设定默认ACL权限; -k:删除默认ACL权限; -R:递归设定ACL权限; 当我们的既不能是文件所有者,又不能是文件所属组的成员,又要具有和其他人不一样的权限 使用ACL权限: 将test文件的所有者为jianyin ,所属组为root,权限设为rwx r-x --- test用户要拥有r-x权限 将test 移动到/home /。如果在/root的家目录下则user不能进入

    最大有效权限和删除ACL权限:

    mask是用来指定有效权限的,我们赋予用户ACL权限,需要与mask相与才能得到用户的真正权限 设置mask setfacl  -m   m:权限 setfacl    -x   u:user    test        //删除用户的acl权限 setfacl    -x   g:user    test         //删除用户组的acl权限 set facl  -b   test  删除所有权限

    默认权限和递归权限:

    递归权限: 递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。(对已经建立的文件生效) // 递归只能对目录设置,不能对文件 setfacl -m u:user:rx -R test 默认权限:父目录在设定ACL权限后,所有的子文件和子目录都会继承相同的ACL权限。(对新建立的文件生效) setfacl -m d:u:user:rx test

    sudo权限

    操作系统命令的权限 把超级用户的命令赋予普通用户 修改visudo 添加用户以及操作 授权用户可以添加用户

    文件特殊权限:

    SetUID(SUID) SetGID  (SGID) Stickey  BIT(SBIT) SUID: 1.只有可执行的二进制文件才能设置可执行权限 2.命令执行者对该文件有执行权限 3. 执行程序时获得该文件属主身份 4.权限只在执行程序过程中有效 ll /etc/shadow #保存密码文件 ----------. 1 root root /usr/bin/passwd #只有超级用户才能改这个文件 但为什么自己能改自己的密码呢? ll /etc/sbin/passwd -rwsr-xr-x. 1 root root /usr/bin/passwd 这个指令有SetUID权限 执行的时候 自己的身份就会这个文件所有者身份 所以就能改密码了 那执行这条命令时,身份可以修改密码了 ,不就能修改其他用户的密码了吗? 实际上linux限制了 passwd后跟其他参数 会报只有根用户才能指定用户名称的错误 用户只能 passwd 直接回车 修改当前用户的密码 只有文件具有SetUID权限,命令执行时用户身份才会切换到文件所有者的身份 灵魂附体 SetUID权限只在该程序执行过程中有效,也就是说身份改变在程序执行过程中有效 设定SetUID的方法 代表SUID chmod 4755 文件名 chmod u+s 文件名 u g o + + + s s s = = = SUID SGID SBIT 取消SetUID方法 chmod -755 文件名 chmod u-s 文件名 1.SetGID针对文件的作用 只有可执行二进制程序才能设定SGID权限 命令执行者要对该程序拥有x(执行)权限 命令执行执行程序时,组身份升级为该程序文件的属组 SetGID权限只在程序执行过程中有效 例子 、usr/bin/locate具有SetGID身份 2.SetGID针对目录的作用 普通用户必须对此目录必须拥有r和x权限,才能进入此目录 普通用户在此目录中的有效组会变成此目录的属组 若普通用户对此目录拥有w权限,新建的文件的默认属组是这个目录的属组 3.设定SetGID chmod g+s 文件名 chmod 2755 文件名 4.取消SetGID chmod g-s 文件名 chmod 0755 文件名 危险的SetUID 1)危险目录应严格控制写权限。比如"/","/usr"等 e.g: chmod u+s /etc/vi vi /etc/shadow 这样用户就可以修改密码了 2)用户的密码设置要严格遵守密码三原则(复杂性、易记忆性、时效性) 对系统中默认应该具有SetUID权限的文件作一列表,定时 检查有没有这之外的文件被设置了SetUID权限,参考下面脚本 #!/bin/bash find / -perm -4000 -o -perm -2000 > /tmp/setuid.check #搜索系统系统中所有有SUID和SGID的文件,并保存到临时目录中 for i in $(cat /tmp/setuid.check) #循环去除文件中的文件名 do grep $i /root/suid.log > /dev/null #比对这个文件名是否在模板文件中 if[ "$?" != "0" ] #检测上一个命令的返回值,如果不成功,上面报错 then echo "$i isn't in listfile!" >> /root/suid_log_$(data+%F) #如果文件名在模板文件中,则输出错误信息,并把错误写到日志中 fi done rm -rf /tmp/setuid.check3、SBIT粘着位作用 普通用户对该目录拥有w和x权限,即普通用户可以在此目录有写入权限 (注意:不建议手工建立拥有粘着位的目录) 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。 一担赋予了粘着位,除了root可以删除所有文件,普通用户就算有w权限,也只能删除自己建立的文件, 但是不能删除其他用户建立的文件设置粘着位 chmod 1755 目录名 chmod o+t 目录名 取消粘着位 chmod 0777 目录名 chmod o-t 目录名

    linux不可改变位权限

    chattr权限 选项具体解释 i 文件:文件所有操作都不可以执行 目录:目录不可新建和删除文件,但目录下文件可更改 a 文件:文件只能增加数据(不能用vi,可用“echo xxx >> 文件” 输出重定向),不能修改和删除数据 目录:只能在目录中建立和修改文件,不能删除 lsattr查看chattr属性 查看目录要加-d选项
    转载请注明原文地址: https://ju.6miu.com/read-2367.html

    最新回复(0)