Linux特殊权限介绍
# password原本只有root可以访问但是为什么普通用户在修改密码的时候也可以改里面的内容。
[root@gong ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
[root@gong ~]# ll /usr/bin/write
-rwxr-sr-x. 1 root tty 19624 Oct 31 2018 /usr/bin/write
[root@gong ~]# ll /tmp/ -d
drwxrwxrwt. 7 root root 120 Apr 3 09:22 /tmp/
suid(set uid)
- 在属主的权限上本来是x执行权限出现了一个s;一般是针对可执行文件。
# 如果一个可执行文件,在属主权限位的x位上有s权限,那么证明该文件有set uid的特殊权限。set uid:任何用户(除了root外)执行具有suid权限的文件时,会以该文件属主的身份去执行
set uid:
# SUID使用方法
chmod u+s 文件名
chmod 4000 文件名
注意:当授权文件,原本属主位上有x权限时,是s,原本属主没有x权限时是S。
sgid(set gid)
-
在属组权限位上,本来应该是x执行权限出现了一个s
-
一般是针对目录,也有可执行文件(大部分针对目录)
1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。
主要目的:共享目录
# 授权方式
chmod g+s 目录
chmod 2000 目录
注意:当授权文件,原本属组位上有x权限时,是s,原本属组没有x权限时是S。
sbit(seticky)
在其他用户权限位上,本来应该是x执行权限出现了一个t
普通用户对该目录拥有w和x权限,即普通用户可以在此目录中拥有写入权限,如果没有粘滞位,那么普通用户拥有w权限,就可以删除此目录下的所有文件,包括其他用户简历的文件。但是一旦被赋予了粘滞位,除了root可以删除所有文件,普通用户就算有w权限也只能删除自己建立的文件,而不能删除其他用户简历的文件。
系统中存在的/tmp
目录是经典的粘滞位目录,谁都有写权限,因此安全成问题,常常是木马第一手跳板。
# 授权方式
chmod o+t 目录
chmod 1000 目录
注意:当授权文件,原本other位上有x权限时是s,原本属组没有other权限时是S。
文件的隐藏属性
创建一个用户的时候信息记录到
创建用户:/etc/passwd
用户密码:/etc/shadow
用户组:/etc/group
组密码:/etc/gshadow
chattr 加锁 root都无法操作
a 让文件或者目录仅可追加内容(不能覆盖)
chattr +a
chattr -a
i 上锁什么都不能干,只能看
chattr +i
chattr -i
umask
[root@gong ~]# umask
0022
mkdir
0777
-0022
----------
0755
touch
0666
-0022
-----------
0644
[root@gong ~]# umask
0022
umask 创建目录时使用777-umask得到文件的权限,创建文件666-umask会在奇数位 +1。
---------------------------------------------------------------------------
如果创建的是文件,使用0666-umask,umask有奇数位的时候要加1,
如果创建的是目录,使用0777-umask,出来的结果就是文件的权限
[root@gong ~]# umask
0222
现在的umask=0222
[root@gong ~]# mkdir aa
[root@gong ~]# ll aa -d
dr-xr-xr-x 2 root root 6 Apr 3 16:54 aa
创建一个目录,权限是0777-umask=555;也就是字母权限r-xr-xr-x
[root@gong ~]# touch bb
[root@gong ~]# ll bb
-r--r--r-- 1 root root 0 Apr 3 16:56 bb
创建一个文件,权限时0666-umask=0444,也就是字母权限r--r--r--
--------------------------------------------------
当umask是奇数位时
[root@gong ~]# umask
0555
[root@gong ~]# mkdir aa1
[root@gong ~]# ll -d aa1
d-w--w--w- 2 root root 6 Apr 3 16:59 aa1
创建一个目录,权限是0777-umask=222;也就是字母权限-w--w--w-
[root@gong ~]# touch bb1
[root@gong ~]# ll bb1
--w--w--w- 1 root root 0 Apr 3 17:01 bb1
创建一个文件,权限时0666-umask=111,但是有奇数位的时候需要+1;所以是222,也就是字母权限-w--w--w-