Day-11linux特殊权限,chattr,lsattr,um

2019-08-08  本文已影响0人  郭文政

1.特殊权限

特殊权限分为三种:setuid,setgid,sbit

1)setuid
[root@oldboy-1 ~] ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
[root@oldboy-1 ~]# ll /etc/shadow
----------. 1 root root 1692 Aug  8 15:14 /etc/shadow

#密码信息存放在/etc/shadow中,但是对任何人没有权限,除了root外,任何用户不能查看,编辑该文件
#但是,加了setuid权限之后,普通用户会继承cat命令属主的身份,也就是说,普通用户会以root身份查看该文件,那么就可查看该文件的内容
2)setgid

setgid,可以对目录进行附加setgid权限,对目录附加setgid权限之后,在其目录下创建的目录或文件默认都将继承上一级目录的属组
chmod g+s 或者 chmod 2---设置setgid权限

[root@oldboy-1 ~] chmod g+s test/
[root@oldboy-1 ~]  ll -d test/
drwxr-sr-x. 2 root GG 6 Aug  6 17:19 test/
[root@oldboy-1 ~]  mkdir test/admix
[root@oldboy-1 ~]  ll -d test/admix/
drwxr-sr-x. 2 root GG 6 Aug  8 16:11 test/admix/
#给test目录赋予setgid权限,到test目录下创建的文件或者目录默认属组就是test的属组,这样我们可以实现同一个属组内的文件共享
3)sbit

sbit是粘连位,对一个目录设置粘连位之后,每个目录自己创建的文件或目录,只能自己删除,别的用户删除不了,并且不能进行编辑(root用户除外)
chmod o+t 或者chmod 1--- 设置sbit权限

[root@oldboy-1 home] chmod 1777 test/
[root@oldboy-1 home]  ll -d test/
drwxrwsrwt. 3 root GG 19 Aug  8 16:11 test/
[syy@oldboy-1 test]$ touch file1
[sg@oldboy-1 test]$ rm -rf file1
rm: cannot remove ‘file1’: Operation not permitted
#给test目录设置粘连位之后,syy用户创建了一个文件file1,但是sg用户删除不了,所以,这就是sbit权限的作用

2.高级权限

chattr可以设置一些权限给目录或者文件,这些权限是高于普通权限的,如果修改之后,也可以对root进行权限限制,chattr 可以使用+ - = 来设置权限

chattr +a  #可以对文件或者目录使用,a选项可以对文件进行上锁,是文件只能追加,不能做其他的操作,这个命令常用于一些重要的日志文件
chattr +i    #可以对文件进行上锁,任何人对这个文件不能做任何操作,包括root,这个命令常用于/etc/passwd ,通常公司用户创建足够之后,就不会再允许别人创建用户,可以用chattr+i实现
lsattr   #查看文件的高级权限

3.umask

umask是系统创建默认权限的依据,umask涉及到的相关文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi
#如果一个用户的uid大于199 并且 如果用户的属主等于属组,那么umask=002,不然,umask就是022

ps:1)一般文件的权限都是666-022=644
一般目录的权限都是777-022=755
2)如果文件的权限有奇数,那么,权限就会加一
例如 如果umask=033
那么 666-033=633 后面两位是奇数,就得加一 权限就是644

3)用umask 后面加值,可以临时的修改umask值

上一篇 下一篇

猜你喜欢

热点阅读