糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > linux权限s的作用 lqc|_高级权限控制之su sudo 特殊权限s及t位 facl

linux权限s的作用 lqc|_高级权限控制之su sudo 特殊权限s及t位 facl

时间:2021-06-13 03:59:04

相关推荐

linux权限s的作用 lqc|_高级权限控制之su sudo 特殊权限s及t位 facl

实验二:高级权限控制之su、sudo、特殊权限s及t位、facl

1)su切换用户

a.su的基本用法:

su - u01 ##root-->u01,不需要密码

su - 或su - root ##u01-->root,需要提供root密码

su - u02 ##u01-->u02,需要密码

su root ##u01-->root,保留部分的环境变量如PWD,-/-l/--login是登录的意思

b.设置特定用户能使用su进入root

vi /etc/pam.d/su

删除第六行的注释:如下

auth required pam_wheel.so use_uid

:wq

gpasswd -a u01 wheel

grep wheel /etc/group ##验证

u01登录

su - ##成功

u02登录

su - ##提示密码错误

注意修改/etc/pam.d/su时切忌删除第四行的注释。

2.sudo提升权限

a.sudo命令的文件

/etc/sudoers ##sudo的配置文件,使用visudo打开,别使用vi编辑

rpm -qf $(which sudo)

rpm -qc sudo ##查看帮助,尽量都学习

b.sudo基本使用

visudo ##添加如下行

u01 localhost=/sbin/fdisk

:wq

su - u01 ##root-->u01

sudo -l ##列出所有可用命令,首次使用sudo时需要提供u01密码

sudo /sbin/fdisk -l ##验证sudo

fdisk -l ##无法使用

exit

c.sudo的别名的使用

主机别名:Host_Alias 别名名称(大写) = 主机名1, 主机名2

用户别名:User_Alias 别名名称(大写) = u01, u02

命令的别名:Cmnd_Alias 别名名称(大写) = 命令(使用绝对路径),

用户别名 主机别名=命令别名

推荐:定义用户别名,取消命令别名注释,主机别一般不用

d.特殊sudo的使用,*,!,NOPASSWD

visudo

u02 localhost=/sbin/* ##将/sbin/所有命令给u02使用

u02 localhost=/sbin/*, !/sbin/mkfs, !/sbin/fdisk -l ##!取反,禁用必须放在最后

u02 localhost=NOPASSWD:/sbin/*, !/sbin/fdisk -l ##NOPASSWD首次使用sudo时不需要密码

Defaults logfile = "/var/log/sudo.log" ##定义sudo执行记录日志

:wq

tial -f /var/log/sudo.log ##在其他终端执行sudo验证

3.SUID,SGID,粘滞位权限

a.SUID:给用户设置set位权限,普通用户执行该命令时,身份切换到root;SGID:给组设置set权限,作用与suid相同。

注意:SUID只对二进制命令有效,并且需要x的权限,如果没有x,设置后使用ls -l查看时是大写的s位。系统中suid的命令是特定的,不要轻易修改。

b.管理suid、sgid、粘滞位

suid、sgid使用s表示,粘滞位使用t表示

chmod u+s /sbin/fdisk ##设置suid

chmod g+s /sbin/fdisk ##设置sgid

取消的方法+变-

粘滞位:对目录有效,作用设置t位权限后,防止用户删除目录下的文件。

chmod o+t /tmp

suid权限脚本:

[root@localhost bin]# cat chkset.sh

#!/bin/bash

if [ ! -e /root/suid.txt ];then

find / -perm -4000 -fprintf /root/suid.txt "%#m %u %p\n" ##查找/目录下suid权限的文件并写入(打印输出)到/root/suid.txt文件中

fi

BASE=$(cat /root/suid.txt |wc -l)

find / -perm -4000 -fprintf /root/suid-$(date +%F).txt "%#m %u %p\n"

CHSET=$(cat /root/suid-$(date +%F).txt |wc -l)

if [ $CHSET -eq $BASE ];then

echo "suid is not change."

elif [ $CHSET -lt $BASE ];then

echo "suid is revoke."

else

echo "suid is adding."

echo "Warning, please check."

fi

4.facl权限

文件的访问控制列表facl

facl给特定账号在不改变原有归属情况下管理文件访问权限。

1)基本用法:

查看:

getfacl 文件

设置用户和组的facl

setfacl -m u:用户:rwx 文件/目录

setfacl -m g:组:rwx 文件/目录

设置默认权限,子目录能继承

setfacl -d -m u:用户:rwx

setfacl -d -m g:组:rwx

删除权限:

setfacl -x u:用户 ##删除一个

setfacl -k 文件/目录 ##删除默认权限

setfacl -b 目录/文件 ##删除所有

练习:

[root@www ~]# mkdir -p test

[root@www ~]# cd test/

[root@www test]# mkdir dir1

[root@www test]# touch a.file

[root@www test]# getfacl dir1 a.file ##查看权限

[root@www test]# ls -l ##对比getfacl的结果

[root@www test]# setfacl -m u:u01:rwx a.file dir1/ ##设置u01用户有rwx权限

[root@www test]# ls -l ##对比前后的变化

[root@www test]# getfacl dir1 a.file ##对比ls -l结果

[root@www test]# groupadd g01

[root@www test]# setfacl -m g:g01:rwx a.file dir1/ ##为组设置权限

[root@www test]# cd dir1

[root@www dir1]# touch a.file ##创建测试文件

[root@www dir1]# getfacl a.file ##查看是否继承了dir1的facl权限

[root@www dir1]# cd ..

[root@www test]# setfacl -d -m u:u01:rwx dir1/ ##设置子目录可继承的权限

[root@www test]# cd dir1/

[root@www dir1]# getfacl a.file ##查看结果为权限无变化

[root@www dir1]# touch b.file ##创建新文件

[root@www dir1]# getfacl b.file ##结果为继承了被设置为-d的权限,并为继承g01的权限,结论:权限必须被-d设置过才能被子对象继承

请自行完成删除权限的操作。

如果觉得《linux权限s的作用 lqc|_高级权限控制之su sudo 特殊权限s及t位 facl》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。