本文共 3729 字,大约阅读时间需要 12 分钟。
接着上篇文章基本权限,这篇文章带你了解特殊权限。合理分配权限,真的很重要。学会修改文件权限,再也不用担心自己的小电影被发现了,啊呸。呵呵,套你猴子的,你这个闷骚男,我是来学习知识的,不是来get
番号的。嘴上说不要,身体很诚实。八连杀,好强大,我要我要我还要,编不下去了,恶心到自己了…
通过目录你可以get
到哪些知识。
目录
一、文件ACL权限
首先查看分区ACL
权限是否开启 ACL
权限
注意:在centos7
中,如果你的系统分区格式是xfs,请用xfs_growfs
命令,不确定系统分区格式,如下图查看:
df
查看系统分区
dumpe2fs -h /dev/sda1
,查询指定分区详细文件系统信息的命令mount -o remount,acl /dev/sda5
,重新挂在根分区,并挂载acl
权限vim /etc/fstab
,修改时请注意这个文件会影响系统的启动 设置ACL
权限,setfacl
【选项】文件
递归权限针对目录,不对文件有效
设置ACL
权限,setfacl
-m 文件:
setfacl -m u:sky:rx /home/av
,赋予sky这个用户读和执行的权限,av代表目录查询ACL
权限,getfacl
【选项】文件
mask
, 用来指定最大有效权限。如果给用户赋予ACL权限,是需要与mask的权限做“相与”逻辑运算才能得到用户的真正权限。
删除指定用户ACL
权限。例如,bols波老师代表文件名
setfacl -x u:sky bols
setfacl -x g:sky bols
删除所有ACL
权限,例如
设置默认ACL
权限
setfacl -m d:u:sky:rx -R /home/av
,如果给av这个父目录下所有子文件赋予了读和执行默认的ACL权限,之前新建的是不会生效的,针对赋予权限之后新建的文件删除默认ACL
权限
setfacl -m d:u:sky:rx -R /home/av
,删除av
这个目录下所有文件和子目录的默认ACL权限递归ACL
权限,递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限,这时设定的是针对已经存在的文件。
setfacl -m u:sky:rx -R /home/av
,赋予sky这个用户读和执行的权限,av目录下所有文件都赋予了读和执行的权限。尽量少用递归ACL权限,会造成权限溢出。二、文件不可改变位权限
chattr
命令 [+ - =]【选项】文件或目录名
最常用的是-i
和-a
-i
:文件不可删,不可修改。如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立或删除文件。
例如:此时对bols
文件进行了赋予chattr +i bols
属性命令。使用lsattr
命令查看你会发现多了i属性,而且不能对其进行删除如下图:
-a
:文件不可删,可修改。如果对文件设置a属性,那么只能在文件中增加数据,但不能删除和修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但不允许删除文件。
例如:此时对bols
文件进行了赋予chattr +a bols
属性命令,也可以用lsattr命令查看发现多了a属性如下图:
注意:使用vi
进行修改是行不通的,系统不好判断是修改还是新增。但使用echo >> av /home/user1/bols
重定向输出是可行的。
三、文件特殊权限
通过观看学习视频,总结了下,大致的把文件特殊权限分为这三个:suid(SetUID
),sgid(SetGID
),sbit(Sticky BIT
)。
首选来了解下suid
,下面我就采用简写了。
passwd
命令拥有suid
权限,所以普通用户可以修改自己的密码
cat
命令没有suid
权限,普通用户不能查看/etc/shadow
文件中的类容
设定suid
的方法,4代表suid
有设定当然也有对应的取消suid
的方法
使用suid权限时得慎重,这家伙也是很危险的。
了解了suid权限后,再来了解下sgid
(SetUID
)权限,针对文件的作用。
sgid
针对目录的作用
例如:
/usr/bin/locate
是可执行二进制程序,可以赋予sgid
特使权限/usr/bin/locate
命令拥有执行权限/usr/bin/locate
命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db
数据库拥有r(读)权限,普通用户可以使用locate命令查询mlocate.db数据库设定sgid
,2代表sgid
取消sgid
了解完sgid,就剩下最后的sbit
特殊权限了,粘着位作用。
w
(写)和x
(执行)权限,普通用户在此目录拥有写入权限w
(写)权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了粘着位,只有root
可以删除所有文件,普通用户就算拥有w
(写)权限,也只能删除自己建立的文件,但不能删除其他用户建立的文件。四、sudo权限
sudo
权限,把原本只能超级用使用的命令对普通用户赋予权限,操作对象是系统命令。
sudo
使用
visudo
,实际修改的是/etc/sudoers
文件root
用户名 ALL
被管理主机的地址 = (ALL
)可使用的身份 ALL
授权命令(绝对路径)#%wheel
#%组名 ALL
被管理主机的地址 = (ALL
)可使用的身份 ALL
授权命令(绝对路径)例如:授权普通用户可以重启服务器
visudo,user1 ALL = /sbin/shutdown -r now
例如:普通用户执行sudo
赋予的命令
su - user1
sudo -l
,查看可用的sudo命令sudo /sbin/shutdown -r now
例如:授权普通用户可以添加其他用户
visudo,usr1 ALL = /usr/sbin/useradd
,添加用户usr1 ALL = /usr/bin/passwd
,授予用户设定密码的权限usr1 ALL = /usr/bin/passwd[A-Za-z]*
,!/usr/bin/passwd""
,!/usr/bin/passwd root
好了,到此为止就是此篇文章的全部内容了,能看到这的都是帅哥靓妹啊!!!善于总结,其乐不穷。好记性不如烂笔头,多收集自己第一次尝试的成果,收获也颇丰。你会发现,自己的知识宝库越来越丰富。
转载地址:http://azcqi.baihongyu.com/