Linux学习--第八天--acl、SetUID、SetGID、chattr、lsattr、sudo

acl权限

文件只能有一个所属组
acl就是不管用户什么组了,直接针对某个文件给他特定权限。
acl需要所在分区文件系统的支持。

df -h                     #查看分区
dumpe2fs -h /dev/sda3     #-h 只显示超级块中的信息,而不显示磁盘快组的详细信息。
						  #dump2fs命令查看分区详细文件系统信息
mount -o remount,acl /    #给/分区添加acl权限,这条命令是临时生效,永久失效需要修改文件/etc/fstab

vi /etc/fstab          #UUID=fadf-fds-adfaf-sdfa-fafdasdsadfsdf / ext4 defaults,acl
mount -o remount /     #重新挂载文件系统,使修改生效               


setfacl选项 描述
-m 设定acl权限
-x 删除指定的acl权限
-b 删除所有的acl权限
-d 设定默认的acl权限
-k 删除默认的acl权限
-R 递归指定的acl权限

useradd mic
useradd leon
groupadd classroom
gpasswd -a leon classroom
gpasswd -a mic classroom
mkdir /test
chown root:classroom /test
chmod 770 /test
useradd shiting
setfacl -m u:shiting:rwx /test

group newgroup
setfacl -m g:newgroup:rwx /test

setfacl -m m:rx /test     #修改最大有效权限
getfacl /test             #前面设置的是特殊acl权限,最后生效的权限是由mask最大有效权限和设置的特殊acl权限用与计算过来的。

setfacl -x u:用户名 /test    
setfacl -x g:组名 /test     
setfacl -b /home/project     #删除所有acl权限

setfacl -m u:用户名:权限 -R /test     #递归设置acl权限

setfacl -m d:u:用户名:权限     		#设置默认acl权限
#默认acl只针对新建的。对现有的还是递归acl。
#递归只能针对目录,不能针对文件,不会报,但没什么用。

SetUID,SetGID

这里写图片描述


这里写图片描述


这里写图片描述


这里写图片描述


查看权限如果是rwS而不是rws,说明报错了,因为该命令执行者没有x权限。
不要随便改SetUID,非常危险,为什么呢?
因为他会灵魂附体,比如给vim设置了,那么以后普通用户就可以修改passwd文件。


这里写图片描述


这里写图片描述


这里写图片描述


这里写图片描述


这里写图片描述


这里写图片描述


chattr

chattr +i /test     #文件设置了i权限,不允许删除、改名、添加数据、修改数据;目录设置了i权限,只能修改目录下的文件,不能删除和建立文件
chattr -i /test
chattr =a /test     #文件设置了a权限,只可以增加数据,但不能删除不能修改数据;目录:只能建立和修改文件,不允许删除

设置了a属性后,不能用vi编辑文件,只能用 echo 然后 >>
chattr 连root的权限都能限制

lsattr -a /test     #显示所有文件和目录的attr权限
chattr -d /test		#显示test目录的attr权限

sudo

visudo
root ALL=(ALL) ALL
#%wheel  ALL=(ALL) ALL

sc 192.168.0.156= /usr/bin/useradd
posted @ 2017-07-27 14:49  OneGoal  阅读(149)  评论(0编辑  收藏  举报