特殊权限管理
- 用户在执行进程命令时,需要调用一个属主和属组是用户本身的
bash
进程,同时对应
一个属主和属组是root
的文件,在执行时一其他用户的身份执行命令;当然这种权限对于属主和属组时root
的文件; - 对于这个命令
/bin/ls
,属主和属组都是root
,westos
进程在调用这个命令时,应用的就是other
的x
权限,当这个进程执行时ls
进程的属主和属组就是westos
,通过这种机制可以防止列出一些westos
不具有权限的文件; 对于
/bin/passwd
这个命令,因为每个用户具有修改自己密码的权限,但是密码文件的属主和属组都是root
,为了保证安全,这个文件不具有任何权限包括root
组用户,如果随意的更改这个文件的权限,会导致权限放大;- 先考虑一种方法,如果为了用户能够修改密码,给了
other
用户读写权限,这就会导致,tom
很有可能就可以修改jerry
的密码,因为可以通过修改文件内容,所以这是不安全的; - 如果将用户加入
root
属组,那么这些用户很有可能具有root
属组的其他文件的权限,这个也是不安全的;
- 先考虑一种方法,如果为了用户能够修改密码,给了
SUID
:在运行某个程序时,如果具有这SUID
权限,那么这个文件运行时进程的属主就是这个文件本身的属主,如果这个文件原来具有执行权限,显示为s
,否则为大写的S
;- 通过给
/bin/passwd
设置SUID
权限,即使用户为tom jerry
属于other
,passwd
进程执行本身的属主和属组都是root
,当用户修改密码时,通过传入的参数,passwd
进程通过root
的权限就可以对/etc/shadow
通过root
的权限就进行修改,即保证了/etcv/passwd
文件本身的安全性,有保证了用户对于修改自己密码的需求; SGID
:启动程序的进程的属组不再是用户的属组而是进程执行时需要的文件本身的属组;在目录里面创建的文件不再是用户的基本组,而是这个目录的基本组Sticky
:表示在一个公共目录每个人都可以创建文件,删除自己的文件,但是不能删除别人的问文件;用于目录设置权限;文件系统的访问控制列表:
- 自己创建的文件的属主和属组都是创建文件用户,普通用户是不能改变文件的属组的;
FACL
:文件系统访问控制列表:利用文件系统的扩展属性保存额外的访问控制权限,用来定义某个用户某个组对于文件有什么样的访问权限;也就是在权限的划分上可以细致到某个确定的用户,而不再是使用组这样的模糊概念; - 系统的安全上下文的过程:进程是以用户的的基本身份去访问文件系统的,先
owner-->group --> other
;的默认流程进行访问;当权限有了setfacl
时:owner--> facl
,user-->group-->facl
,group-->other
.; - 在
facl
里面有一个权限是mask
,表示的是你所给的用户或者组的如果没有设置mask
权限,mask
权限是随着设定的最大权限改变的,如果已经设定最大权限mask
,访问控制权限是不能超过mask
权限的,否则以mask
权限为准; setfacl
:用于设置额外的访问控制列表;-m
:u
:用于设置给某个用户;perm
g
:用于设置给某个组;perm
- 如果需要为了目录设置默认的访问控制列表:
d
或者UID:perm
d
;GID:perm
-x
:u
:用于取消某个用户;perm
g
:用于取消某个组;perm
getfacl
:用来获取文件的访问控制列表信息;
- 自己创建的文件的属主和属组都是创建文件用户,普通用户是不能改变文件的属组的;
- 如果文件有扩展属性时,进行文件归档,或者复制时权限会被忽略;
- 对于文件设置的
mask
: - 对于目录设置的
mask
还没有评论,来说两句吧...