标签:linux sgid suid sticky 特殊权限
linux文件系统特殊权限及suid sgid sticky
1、Linux文件系统上的特殊权限
权限模型:
u, g, o
r, w, x
2、进程的安全上下文:
前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;
(1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;
(2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;
(3) 进程拥的访问权限,取决其属主的访问权限:
(a) 进程的属主,同文件属主,则应用文件属主权限;
(b) 进程的属主,属于文件的属组,则应用文件属组权限;
(c) 则应用其它权限;
3、SUID:
(1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限;
(2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID;
权限设定:
chmod u+s FILE...
chmod u-s FILE...
注意:
s: 属主原本拥有x权限;
S: 属主原本无x权限;
4、SGID:
默认情况下,用户创建文件时,其属级为此用户所属的基本组;
作用:一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建的文件所属的组为目录的属组,而非用户的基本组;
权限设定:
chmod g+s FILE...
chmod g-s FILE...
5、Sticky:
作用:对于一个多人可写的目录,此权限用于限制每个仅能删除自己的文件;
权限设定
chmod o+t FILE...
chmod o-t FILE...
SUID, SGID, STICKY
000
001
010
011
100
101
110
111
chmod 4777 FILE
chmod 3755 DIR
6、文件系统属性chattr权限
chattr [+,-,=] [选项] 文件或目录名
选项:
i:如果对文件设置i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;
如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件,也不能改名
a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;只能用重定向追加入数据
如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件
例子:
[root@localhost ~]# chattr +ia /etc/fstab [root@localhost ~]# lsattr /etc/fstab ----ia-------e- /etc/fstab [root@localhost ~]# chattr -ia /etc/fstab [root@localhost ~]# lsattr /etc/fstab -------------e- /etc/fstab
7、查看文件系统属性
lsattr 选项 文件名
-a 显示所有文件和目录
-d 若目标是目录,仅列出目录本身的属性,而不是子文件的属性
例子:
[root@localhost ~]# lsattr -a /usr/local/* -------------e- /usr/local/bin/. -------------e- /usr/local/bin/.. -------------e- /usr/local/etc/. -------------e- /usr/local/etc/.. -------------e- /usr/local/games/.
6、sudo权限
root把本来只能管理员执行的命令赋予普通用户执行
sudo的使用
visudo打开/etc/sudoers配置文件
1.lisir ALL=NOPASSWD:/sbin/service,/sbin/ifconfig,/bin/mount
上述命令都不输入密码
2.lisir station 73=/sbin/service/,NOPASSWD:/sbin/ifconfig,/bin/mount
执行service命令需输入密码,ifconfig,mount 不需要
3.lisir station73=(poppy) /sbin/service,NOPASSWD:(root) /bin/mount
一个用户可以执行多个用户的某些命令
4.%stu station=NOPASSWD:NETWORKING./bin/
Stu组中的用户可以不输入用户密码执行文件中定义的NETWORKING ,以及目录/bin下的命令。还记得 吗?目录后面必须加上/结尾
5.poppy ALL=(ALL) ALL
这个命令很危险 它是是poppy用户可以在任何主机上以任何用户执行任何命令。
Sudo 的特点是:给用户尽可能少的权限,但能完成他们的工作,所有在编辑SUDOERS文件时,注意不要让非法用户截取root权限.
例子:
[root@localhost ~]# visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL lisir ALL=/sbin/fdisk [root@localhost ~]# su - lisir [lisir@localhost ~]$ sudo fdisk -l [sudo] password for lisir: Disk /dev/sda: 128.8 GB, 128849018880 bytes 255 heads, 63 sectors/track, 15665 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00048e25
练习:
1、让普通用户能使用/tmp/cat去查看/etc/shadow文件;
答:
[root@localhost ~]# cp -rfp /bin/cat /tmp
[root@localhost ~]# chmod u+s /tmp/cat
[root@localhost ~]# su - lisir
[lisir@localhost ~]$ /tmp/cat /etc/shadow
2、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;
答:
[root@localhost ~]# mkdir -p /test/data
[root@localhost ~]# chmod g+s /test/data/
[root@localhost ~]# chmod o+t /test/data/
[root@localhost ~]# chown :lisir /test/data
[root@localhost ~]# chmod g+w /test/data/
linux文件系统特殊权限及suid sgid sticky
标签:linux sgid suid sticky 特殊权限
原文地址:http://807257775.blog.51cto.com/2448194/1691540