注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

chmod命令高级篇( SetUID与SetGID标识位)  

2013-09-02 15:21:26|  分类: Linux基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 在Android中很多人都知道通过su来获得root权限,但是不知道大家有没有研究过su文件的权限

/bin/su -rws-r-xr-x 1 root root

   注意看到没有那个s权限是什么呢?s就是SetUID的标识,该设置使文件在执行阶段时其有效用户id(可以通过getuid()取得 )为该文件拥有者的id,。而内核检查一个进程是否具有访问某权限时,是使用进程的有效用户 ID 来进行检查的,因而使其在执行阶段具有文件所有者的权限.。典型的就是su文件。还有一点就是当其它用户使用带用Setuid标识的命令时,自己对此命令也必需有X(执行)的权限,否则一切都免谈..这点应该不难理解的..^_^
在linux中,文件的权限除了了常见的rwxrwxrwx权限,还有以下标识用于表示权限:
setuid: 设置使文件在执行阶段时其有效用户id(可以通过getuid()取得 )为该文件拥有者的id,。而内核检查一个进程是否具有访问某权限时,是使用进程的有效用户 ID 来进行检查的,因而使其在执行阶段具有文件所有者的权限.。典型的就是su文件。
setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.
sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.
下面说一下如何操作这些标志:
操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,

1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效)

chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效)

chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)
实例1
@ubuntu:~/share/temp$ touch test.exe
robin@ubuntu:~/share/temp$ ls -l
-rw-r--r-- 1 robin robin         0 2013-09-02 15:26 test.exe
robin@ubuntu:~/share/temp$ chmod u+s test.exe
robin@ubuntu:~/share/temp$ ls -l
-rwSr--r-- 1 robin robin         0 2013-09-02 15:26 test.exe
robin@ubuntu:~/share/temp$ chmod o+s test.exe
robin@ubuntu:~/share/temp$ ls -l
-rwSr--r-- 1 robin robin         0 2013-09-02 15:26 test.exe
实例2
robin@ubuntu:~/share/temp$ rm test.exe
robin@ubuntu:~/share/temp$ touch test.exe
robin@ubuntu:~/share/temp$ ls -l
-rw-r--r-- 1 robin robin         0 2013-09-02 15:28 test.exe
robin@ubuntu:~/share/temp$ chmod a+t test.exe
robin@ubuntu:~/share/temp$ ls -l
-rw-r--r-T 1 robin robin         0 2013-09-02 15:28 test.exe
实例3
robin@ubuntu:~/share/temp$ rm test.exe
robin@ubuntu:~/share/temp$ mkdir testdir
robin@ubuntu:~/share/temp$ ls -l
drwxr-xr-x 2 robin robin      4096 2013-09-02 15:29 testdir
robin@ubuntu:~/share/temp$ su
密码: 
root@ubuntu:/home/robin/share/temp# ls -l
drwxr-xr-x 2 robin robin      4096 2013-09-02 15:29 testdir
root@ubuntu:/home/robin/share/temp# cd testdir
root@ubuntu:/home/robin/share/temp/testdir# ls
root@ubuntu:/home/robin/share/temp/testdir# touch 1.txt
root@ubuntu:/home/robin/share/temp/testdir# ls -l
-rw-r--r-- 1 root root 0 2013-09-02 15:30 1.txt
root@ubuntu:/home/robin/share/temp/testdir# exit
exit
robin@ubuntu:~/share/temp$ chmod g+s testdir
robin@ubuntu:~/share/temp$  ls -l
drwxr-sr-x 2 robin robin      4096 2013-09-02 15:30 testdir
robin@ubuntu:~/share/temp$ su
密码: 
root@ubuntu:/home/robin/share/temp# cd testdir
root@ubuntu:/home/robin/share/temp/testdir# ls
1.txt
root@ubuntu:/home/robin/share/temp/testdir# touch 2.txt
root@ubuntu:/home/robin/share/temp/testdir# ls -l
-rw-r--r-- 1 root root  0 2013-09-02 15:30 1.txt
-rw-r--r-- 1 root robin 0 2013-09-02 15:31 2.txt
实例4
robin@ubuntu:~/share/temp/temp$ touch 1.exe
robin@ubuntu:~/share/temp/temp$ ls -l
-rw-r--r-- 1 robin robin 0 2013-09-02 15:48 1.exe
robin@ubuntu:~/share/temp/temp$ chmod 7777 1.exe
robin@ubuntu:~/share/temp/temp$ ls -l
-rwsrwsrwt 1 robin robin 0 2013-09-02 15:48 1.exe
结束!
  评论这张
 
阅读(1374)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017