-
切换用户命令 su 用户
赋予普通用户已超级管理员的权限 :以root身份 visudo 后,添加一行
user All=(All) 命令的绝对路径 ,注释:第一个All 指管理者的主机的IP地址,意思是,只有在指定的IP地址下才有sudo这个权限,第二个All指,可以切换成任意身份,这个可以直接省略 例如 user All=(All) /sbin/shutdown -r now 也可以是 user All=/sbin/shutdown -r now
如果为用户组添加权限的话 %组名 All=(All) /sbin/shutdown -r now
普通用户可以执行sudo -l查看可以执行的命令
普通用户执行超级命令的时候必须要加 sudo 命令的绝对路径 例如 sudo /sbin/shutdown -r now
查看全部 -
递归ACL:指在给父目录赋予权限的同时,给已经存在于目录下的文件赋予相同的权限
setfacl -m u:用户名:权限 -R 目录名 这里R表示递归
注意: a.用递归的方式容易导致文件权限溢出 b.递归acl只能用在目录而不能用于普通文件
默认ACL 权限 : 给父目录下将来新建的文件默认赋予父目录的权限
setfacl -m d:u:用户名:权限 目录名 这里d 表示default
查看全部 -
chattr命令格式(对root生效)
charrt[+-=][选项]文件或目录
+:增加权限
-:删除权限
=:等于某权限
i:如果对文件设置i属性,那么不允许对文件进行删除,改名也不能添加和 修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不能 建立和删除文件
a:如果对文件设置a属性,那么只能在文件中增加数据,但不能删除也不能修改数据 如果对目录设置a属性,那么只允许在目录中建立和修改文件,但不允许删除
文件用echo >>输出重定向添加数据
lsattr 选项 文件名
-a 显示所有文件和目录
-d 仅列出目录本身的属性
查看全部 -
1.SUID只能对执行文件生效,SGID能对目录和执行文件生效,SBIT只能对目录生效
2.要赋予SBIT 权限必须给目录普通用户赋予7权限,因此也比较危险。
3.赋予SBIT权限: chmod o+t 或者 chmod 1***
4.目录有SBIT权限后,任何普通用户都可以在目录下新建文件,但是只能删除自己创建的文件,不允许删除其它用户的文件。
5. /tmp/ 目录默认有SBIT权限
查看全部 -
SetGID针对文件的作用
只有可执行二进制程序才能设定SGID权限
命令执行者要对该程序拥有x(执行)权限
命令执行执行程序时,组身份升级为该程序文件的属组
SetGID权限只在程序执行过程中有效
例子 、usr/bin/locate具有SetGID身份
SetGID针对目录的作用
普通用户必须对此目录必须拥有r和x权限,才能进入此目录
普通用户在此目录中的有效组会变成此目录的属组
若普通用户对此目录拥有w权限,新建的文件的默认属组是这个目录的属组
设定SetGID
chmod g+s 文件名 chmod 2755 文件名
取消SetGID
chmod g-s 文件名 chmod 0755 文件名
查看全部 -
定期检查suid和sgid
#!/bin/bash
find / -perm -4000 -o -perm -2000> /tmp/setuid.check
for i in $(cat /tmp/setuid.check)
do
grep $i /home/suid.log> /dev/null
if [ "$?" != "0" ]
then
echo "$i isn't in listfile!">>/home/suid_log_$(date +%F)
fi
done
rm -rf /tmp/setuid.check
查看全部 -
(1)设定SetUID方法
chmod 4755 文件名
chmod u+s 文件名
(2)SetUID功能
1.只有可执行二进制程序才能设定SUID权限
2.命令执行者要对该程序拥有x(执行)权限(如果当前文件没有执行权限,着会出现大S权限,大S权限是无效的,s=S+x,s才是超级权限。)
3.命令执行者在执行该程序时获得该程序文件属主身份
4.SetUID权限只在程序执行过程中有效
passwd拥有SetUID权限,所以普通用户可以修改自己密码 cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容
查看全部 -
#授权普通用户可以添加其他用户
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赋予的命令越详细,普通用户的权限越小,赋予的越简单,权限越大
user1 ALL=/bin/vi #赋予user1使用vi更改任意文件的权限(甚至包括/etc/shadow 保存用户名密码文件).
查看全部 -
切换用户命令 su 用户
赋予普通用户已超级管理员的权限 :以root身份 visudo 后,添加一行
user All=(All) 命令的绝对路径 ,注释:第一个All 指管理者的主机的IP地址,意思是,只有在指定的IP地址下才有sudo这个权限,第二个All指,可以切换成任意身份,这个可以直接省略 例如 user All=(All) /sbin/shutdown -r now 也可以是 user All=/sbin/shutdown -r now
如果为用户组添加权限的话 %组名 All=(All) /sbin/shutdown -r now
普通用户可以执行sudo -l查看可以执行的命令
普通用户执行超级命令的时候必须要加 sudo 命令的绝对路径 例如 sudo /sbin/shutdown -r now
查看全部 -
最大有效权限mask(使用命令getfacl 文件名显示的结果中倒数第二排会出现mask这个词)mask是用来指定最大有效权限的。如果我给用户赋予了acl权限,是需要和mask的权限“相与”才能得到用户的真正权限。相与是计算机中的术语,皆真方为真,有假便为假。
修改mask值的命令 setfacl -m m:rx 文件
删除acl权限的命令 setfacl -x u:用户名 文件 (删除指定用户的acl权限)
setfacl -x g:组名 文件 (删除指定用户的acl权限)
setfacl -b 文件 (删除所有的acl权限)
查看全部 -
getfacl 文件名 //查看acl权限;
setfacl 选项 文件名 //设定ACL权限的命令;
选项:
-m:设定ACL权限;
-x:删除指定的ACL权限;
-b:删除所有的ACL权限;
-d:设定默认ACL权限;
-k:删除默认ACL权限;
-R:递归设定ACL权限; 为用户设定ACL权限
setfacl -m u:用户名:权限(rwx) 文件名 setfacl -m u:hanle1:rwx abc
为用户组设定ACL权限 setfacl -m g:组名:权限(rwx) 文件名
查看全部 -
文件就三个权限
所有者权限 组权限 其他权限 有时候不够用 这时候就需要ACL权限 用来解决用户身份不够的问题
查看分区ACL权限是否开启
dumpe2fs -h /dev/sda5
#dumpe2fs命令查询指定分区详细文件系统信息的命令
-h 仅显示超级块中信息,而不显示磁盘块的详细信息
文件信息: Default mount options: user_xattr acl 那就说明分区是支持acl的
临时开启分区ACL权限 mount -o remount,acl /
#重新挂载根分区,并挂载加入acl权限
永久开启分区ACL权限
vi /etc/fstab UUID=c2ca6f57-b15c-43ea=bca0-f239083d8bd2 / ext4 defaults,acl 1(#启动是否需要检测) 1(#启动是否需要备份) #加入acl
mount -o remount / #重新挂载文件系统或重启系统,使修改生效
查看全部 -
递归ACL:指在给父目录赋予权限的同时,给已经存在于目录下的文件赋予相同的权限
setfacl -m u:用户名:权限 -R 目录名 这里R表示递归
注意: a.用递归的方式容易导致文件权限溢出 b.递归acl只能用在目录而不能用于普通文件
默认ACL 权限 : 给父目录下将来新建的文件默认赋予父目录的权限
setfacl -m d:u:用户名:权限 目录名 这里d 表示default
查看全部 -
最大有效权限mask(使用命令getfacl 文件名显示的结果中倒数第二排会出现mask这个词)mask是用来指定最大有效权限的。如果我给用户赋予了acl权限,是需要和mask的权限“相与”才能得到用户的真正权限。相与是计算机中的术语,皆真方为真,有假便为假。
修改mask值的命令 setfacl -m m:rx 文件
删除acl权限的命令 setfacl -x u:用户名 文件 (删除指定用户的acl权限)
setfacl -x g:组名 文件 (删除指定用户的acl权限)
setfacl -b 文件 (删除所有的acl权限)
查看全部 -
getfacl 文件名 //查看acl权限;
setfacl 选项 文件名 //设定ACL权限的命令;
选项:
-m:设定ACL权限;
-x:删除指定的ACL权限;
-b:删除所有的ACL权限;
-d:设定默认ACL权限;
-k:删除默认ACL权限;
-R:递归设定ACL权限; 为用户设定ACL权限
setfacl -m u:用户名:权限(rwx) 文件名
为用户组设定ACL权限 setfacl -m g:组名:权限(rwx) 文件名
查看全部
举报