-
1.SUID只能对执行文件生效,SGID能对目录和执行文件生效,SBIT只能对目录生效
2.要赋予SBIT 权限必须给目录普通用户赋予7权限,因此也比较危险。
3.赋予SBIT权限: chmod o+t 或者 chmod 1***
4.目录有SBIT权限后,任何普通用户都可以在目录下新建文件,但是只能删除自己创建的文件,不允许删除其它用户的文件。
5. /tmp/ 目录默认有SBIT权限
查看全部 -
例如:/usr/bin/locate有SGID权限,执行locate命令时用户user1的组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库,命令结束后user1用户的组身份从slocate组返回原来组
查看全部 -
让没有权限的人执行时获得所有者的权限,这个所有者一般为root,常见应用如passwd
文件所有者要有x权限才有意义,所有者没有执行权限它就会变S
chmod 4600 xxx //不可以执行 显示S
chmod 4601 xxx //可以执行,显示S 先执行了所有人权限,然后变root?root 就是这么吊
没事就别增加这个权限了。
定期检查suid<br>
#!/bin/bash<br>
find / -perm -4000 -o -perm -2000> /tmp/setuid.check<br>
for i in $(cat /tmp/setuid.check)<br>
do<br>
grep $i /home/suid.log> /dev/null<br>
if [ "$?" != "0" ]<br>
then<br>
echo "$i isn't in listfile!">>/home/suid_log_$(date +%F)<br>
fi<br>
done<br>
rm -rf /tmp/setuid.check
查看全部 -
1.当初的umask值是0022,第一位是指特殊权限位,而在设定权限的时候常常输入755 644,此时是将特殊权限省略了。
2.可以利用chmod 4755 (4644) 文件名 为文件设置特殊权限。
3.一旦设定后,对这个文件有执行权限的普通用户在执行这个文件的时候,会临时将自己变成这个文件的所有者,拥有最高权限。在运行结束后,还原身份。
4.一般不用suid来赋权限。
查看全部 -
【sudo权限】
例2:
#授权普通用户可以添加其他用户
visudo
#编辑/etc/sudoers文件
user1 ALL= /usr/sbin/useradd
#sudo赋予普通用户user1添加用户的命令
user1 ALL= /usr/bin/passwd
#授权user1用户设定密码的权限
#注意:这样设置极不安全,因为user1可以设置root用户密码了,这是不合理的,应该按下面这样写
user1 ALL= /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root
#说明1:[A-Za-z]* ,这是个正则表达式,passwd后面的跟的用户名包括任何字母,*代表字母可以重复0-N次
#说明2:!/usr/bin/passwd "",!代表取反,这意味着passwd 后面跟的用户名不能为空,因为为空代表设置自身密码,而user1执行设置密码命令时使用的是root身份
#说明3:!/usr/bin/passwd root,!代表取反,这意味着passwd后面不能跟root
#说明4:,后面一定要有空格,没有空格不生效
#说明5:三段代码顺序不能颠倒
#原则:sudo赋予的命令越详细,普通用户的权限越小,赋予的越简单,权限越大
查看全部 -
1.切换用户命令 su 用户
2.赋予普通用户已超级管理员的权限 :以root身份 visudo 后,添加一行 user all=(all) 命令的绝对路径 ,注释:第一个all 指管理者的主机的IP地址,意思是,只有在指定的IP地址下才有sudo这个权限,第二个all指,可以切换成任意身份,这个可以直接省略
例如 user all=(all) /sbin/shutdown -r now 也可以是 user all=/sbin/shutdown -r now<br>
如果为用户组添加权限的话 %组名 all=(all) /sbin/shutdown -r now
3.普通用户可以执行sudo -l查看可以执行的命令<br>
4.普通用户执行超级命令的时候必须要加 sudo 命令的绝对路径<br>
例如 sudo /sbin/shutdown -r now
visudo 更改用户可以执行的命令权限,其它都是针对文件<br>
<br>
visudo<br>
test ALL=/sbin/shutdown -r now //越详细权限越清晰越明确<br>
test All=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root //逗号后的空格必须,赋予权限时注意限制<br>
test All=/usr/bin/vi //no 运行时是root权限,超危险
su -l test<br>
sudo -l //查看有的权限
查看全部 -
为什么我的ACL没有mask值?mask 指定最大有效权限,如果给用户赋予ACL权限,是需要和mask权限
相与才能得到用户真正的权限
修改最大有效权限
setfacl -m m:rx 文件名,使用m:权限格式
setfacl -x u:用户名 文件名 ,删除指定用户的ACL权限
setfacl -x g:组名 文件名,删除指定用户组的ACL权限
尽量少用acl权限,因为可能会权限溢出。
1.默认acl权限:把这个目录下以后所创建的所有文件都赋予某些权限。<br>
setfacl -m d(default的缩写):u:user1 目录名<br>
2.递归权限:在赋予目录权限的同时将权限赋予此文件夹下面的子文件权限<br>
setfacl -m u:user1 -R 目录名
查看全部 -
acl最大权限musk
setfacl -m u:用户名:权限 文件名
删除acl权限
setfacl -x u:用户 文件名
setfacl -x g:组名 文件名
删除文件所有acl权限
setfacl -b 文件名
查看全部 -
【查看acl权限的命令】
getfacl 文件名
#查看acl权限
【设定acl权限的命令】
setfacl 选项 文件名
选项
-m #设定acl权限
-x #删除指定的acl权限
-b #删除所有的acl权限
-d #设定默认acl权限
-k #删除默认acl权限
-R #递归设定acl权限
例:setfacl -m u:lw:rx /av
#给用户lw赋予r-x权限,使用"u:用户名:权限"格式
例:setfacl -m g:group2:rwx /av
#给用户组group2赋予rwx权限,使用"g:组名:权限"格式
查看全部 -
ACL权限:解决其他人权限不足的问题
对ACL权限进行开启:mount -o remount,acl /
查询系统是否挂载ACL权限:dumpe2fs -h /dev/sda5
永久挂载ACL权限:vi /ect/fstab
查看全部 -
超级管理员赋予普通用户执行系统命令权限: visudo 改写文件 用户名 ALL=(ALL) ALL 绝对路径 su 用户名 sudo -l 查看当前用户执行权限 sudo 绝对路径 进行系统命令查看全部
-
递归赋予目录ACL权限 setfacl -m u:用户名:权限 -R 目录名 赋予目录默认ACL权限 setfacl -m d:u:用户名:权限 目录名 意思是父目录用来赋予子目录的权限。递归赋予意思是赋予父目录中已存在的子目录的权限,默认权限是指在赋予该默认权限后,向父目录中建立子目录时,子目录的acl权限为默认权限。查看全部
-
acl最大权限musk setfacl -m u:用户名:权限 文件名 删除acl权限 setfacl -x u:用户 文件名 setfacl -x g:组名 文件名 删除文件所有acl权限 setfacl -b 文件名查看全部
-
SUID和SGID检测脚本
find / -perm +4000
匹配过程:
1.普通文件,文件的权限一般三位,777最高文件权限
-perm -0777搜索的就是最高权限的文件rwxrwxrwx
-perm +0777搜索的只要包含rwxrwxrwx任意一个的文件
2.特殊文件,包含权限位置四位,7000为最高,即--s--s--t,同样的方法
-perm -7000搜索的就是最高权限的文件--s--s--t
-perm +0777搜索的只要包含--s--s--t任意一个的文件,--s --- ---(4000)、--- --s ---(2000)、--- --- --t(1000)等
自然+4000匹配的就是包含--s --- ---权限的文件,+4755对应的rwsr-xr-x包含了--s --- ---权限,所以4000可以匹配4755呢
查看全部 -
如何设定ACL权限: setfacl -m u/g:用户名或组名:权限 目录或文件名查看全部
举报