Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7116885
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 系统运维

2015-03-11 07:20:54

Linux特殊权限详述

[日期:2015-03-10] 来源:Linux社区  作者:Linux [字体:  ]
   Linux引入suid、sgid、sticky这三种特殊权限,能够更加方便、有效和安全地控制文件。

    当在一个目录或文件上加入suid特殊权限时,如过原来目录或文件的属主具有x(执行)权限,就会用小写的s来替代x;如果原来文件或目录不具有x(执行)权限,就会用大写的S来代替x。

同样,sgid和suid相同,如过原来目录或文件的属组具有x(执行)权限,就会用小写的s来替代x;如果原来文件或目录不具有x(执行)权限,就会用大写的S来代替X。

    同样,如果在一个文件或目录上加入sticky权限时,若原文件或目录的其他用户有x(可执行)权限时,就用小写t代替x;如果原文件或目录没有x权限时,就用大写T替代x权限。下例说明。

    可以chmod的字符或数字的方式修改特殊权限,下例以数字方式实现。

 # -rw-r--r-- 1 root root 0 Nov  6 07:40 test1  ugo都没执行权限 
# chmod 7644 test1                            原权限是644,都加上特殊权限 
# -rwSr-Sr-T 1 root root 0 Nov  6 07:43 test1  属主、属组、其他用户执行权限变为S、S、T. 
  
# -rwxr-xr-x 1 root root 0 Nov  6 07:43 test2  ugo都有执行权限 
# chmod 7755 test2                            原权限是655,都加上特殊权限 
# -rwsr-sr-t 1 root root 0 Nov  6 07:49 test2  属主、属组、其他用户执行权限变为s、s、t. 
  
特殊权限对可执行文件的作用: 
suid特殊权限是以可执行文件的所有者的权限来运行这一文件,不是以执行者的权限运行该命令。 
sgid特殊权限是以可执行文件的群组的权限来运行这一文件。下例说明: 
ls -l /bin/ping
-rwsr-xr-x 1 root root 35832 Apr 24  2009 /bin/ping
可见ping命令有suid特殊权限。ping可以测试网络是否连通。切换到yaoyao用户,ping一下可见网络确实连通。 
[yaoyao@localhost test2]# ping -c4 
PING (61.135.169.121) 56(84) bytes of data. 
64 bytes from 61.135.169.121: icmp_seq=1 ttl=47 time=10.0 ms 
64 bytes from 61.135.169.121: icmp_seq=2 ttl=46 time=14.3 ms 
64 bytes from 61.135.169.121: icmp_seq=3 ttl=46 time=17.7 ms 
64 bytes from 61.135.169.121: icmp_seq=4 ttl=46 time=23.9 ms 
  
--- ping statistics --- 
4 packets transmitted, 4 received, 0% packet loss, time 3000ms 
rtt min/avg/max/mdev = 10.090/16.539/23.938/5.067 ms 
切换到root用户,用chmod命令去掉ping命令的suid权限,再切换到yaoyao用户,测试一下是否能ping通。 
# chmod u-s /bin/ping 
# ls -l /bin/ping 
# -rwxr-xr-x 1 root root 35832 Apr 24  2009 /bin/ping 
$ $ ping  
  ping: icmp open socket: Operation not permitted 
这次就无法ping通,由此可见,suid特殊权限是以可执行文件的所有者的权限来运行这一文件,不是以执行者的权限运行该命令。 
  
特殊权限对目录的作用: 
在一个目录上设置了sticky特殊权限,只有文件的所有者和用户才能删除该目录的文件,而不理会属组和其他用户的写权限。 
在一个目录上设置sgid特殊权限,则只要是同组成员,都可以在此目录查看、创建、删除文件。 
经常会对目录设置sticky和suid权限以方便管理。即同组成员可以查看和写入本目录下的各个文件,却不能删除。如下: 
首先创建两个用户xiaoyao和linuxidc用于测试,再创建一个house目录。创建一个love分组,于是xiaoyao和linuxidc便相爱了...将这对恋人xiaoyao和linuxidc加入love分组,house目录属组设置为love,再给house目录设置sgid和sticky这两个特殊权限。 
  
# useradd xiaoyao 
# useradd linuxidc 
# mkdir house 
# groupadd love 
  
将xiaoyao和linuxidc加入love组内。 
# usermod -G love xiaoyao 
# usermod -G love linuxidc 
  
#id xiaoyao;id linuxidc 
 uid=503(xiaoyao) gid=504(xiaoyao) groups=504(xiaoyao),506(love) context=root:system_r:unco nfined_t:SystemLow-SystemHigh 
 uid=504(linuxidc) gid=505(linuxidc) groups=505(linuxidc),506(love) context=root:system_r:u nconfined_t:SystemLow-SystemHigh    可以看到用户xiaoyao和linuxidc都在love组内。 
  
将house目录属组改为love组 
# chown :love house 
# ls -l 
  drwxr-xr-x 2 root love 4096 Nov  6 09:34 house 
  
添加sgid和sticky特殊权限,并且属组具有写权限(属组内用户可以创建文件,否则不能)。 
# chmod 3775 house 
  drwxr-sr-t 2 root love 4096 Nov  6 09:34 house 
  
切换到用户linuxidc,并创建文件xiaoming,写入一句话"I love you"
$ echo "I love you xiaoyao." > linuxidc 
  
切换到用户xiaoyao,创建文件xiaoyao,且写入"Me too."
$ echo "Me too" > xiaoyao 
  
查看house目录内容,可发现所创建文件属组都是love。 
ls -l 
 -rw-rw-r-- 1 linuxidc love 19 Nov  6 09:40 linuxidc 
 -rw-rw-r-- 1 xiaoyao  love  6 Nov  6 09:41 xiaoyao 
  
用户xiaoyao尝试删除house目录下的linuxidc,这时提示不允许,但可以写入,这就是共享信息吧。 
[xiaoyao@localhost house]$ rm linuxidc 
rm: cannot remove `linuxidc': Operation not permitted 
$ echo "Baby." >> linuxidc 
$ cat linuxidc 
  Me too. 
  Baby.

Linux ACL权限规划:getfacl,setfacl使用 

Linux权限补充:rwt rwT rws rwS 特殊权限 

Linux用户及用户组权限 

Linux三个特殊权限 setuid setgid stick bit 

本文永久更新链接地址

阅读(431) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~