SUID,SGID和sticky粘滞位
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-03-29
简单介绍一下Linux下的文件类型,使用ls –l 命令可以查看文件及目录的属性信息 格式如: d r w x r - x - - - 3 redhat root 4096 Jul 27 2009 test 9 8 7 6 5 4 3 2 1 0 其中的第一段是权限信息,一共有0-9十位组成,分别表示文件类型(第9位),属主权限(6-8),属组权限(3-5)和其他用户的权限(0-2)r表示可读,可以读出文件的内容 w表示可写,可以修改文件的内容x表示可执行. 使用ls –l 查看/etc/passwd得到如下属性信息 [root@server30 ~]# ls -l /etc/passwd -rw-r--r-- 1 root root 2979 Jul 30 13:24 /etc/passwd 我们可以看到passwd文件只有对于root用户是可写的,而对于所有的他用户来说都是没有写权限的. 那么一个普通的用户如何能够通过运行passwd命令修改这个passwd文件呢? 为了解决这个问题,就要用到SUID/SGID. ,我们要知道进程在运行的时候,有一些属性,其中包括 实际用户ID,实际组ID,有效用户ID,有效组ID等. 实际用户ID和实际组ID标识我们是谁,谁在运行这个程序,一般这2个字段在登陆时决定,在一个登陆会话期间, 这些值基本上不改变. 而有效用户ID和有效组ID则决定了进程在运行时的权限.内核在决定进程是否有文件存取权限时, 是采用了进程的有效用户ID来进行判断的. 当一个程序设置了为SUID位时,内核就知道了运行这个程序的时候,应该认为是文件的所有者在运行这个程序.即该程序运行的时候,有效用户ID是该程序的所有者.举个例子: [student@server30 root]$ ls -l /etc/passwd -rw-r--r-- 1 root root 2979 Jul 30 13:24 /etc/passwd 虽然你以student登陆系统,但是当你输入passwd命令来更改密码的时候,passwd设置了SUID位,因此虽然进程的实际用户ID是test对 应的ID,但是进程的有效用户ID则是passwd文件的所有者root的ID,因此可以修改/etc/passwd文件. 为文件1.sh添加SUID可以使用 [root@server30 tmp]# chmod u s 1.sh [root@server30 tmp]# ls –l 可以看到 -rwSr--r-- 1 root user1 0 Jul 31 18:54 1.sh 这样普通用户就可以执行1.sh了 suid和sgid是在执行一个程序的过程中起作用,在设置某个文件的suid或sgid位的同时打开该文件相应的可执行位,而可执行位只对普通文件和目录文件有意义,设置其他种类文件的suid和sgid位是没有多大意义的. 下面来说明一下对目录的影响.suid对目录没有影响. 如果一个目录设置了sgid位,那么如果任何一个用户对这个目录有写权限的话,他在这个目录所建立的文件的组都会自动转为这个目录的属主所在的组,而文件所有者不变,还是属于建立这个文件的用户.亦即,此目录下所建立的所有文件(含子目录)都将继承该目录的组属性.显然,当您需要创建一个属于同一组的一组人使用的目录树时,这种特殊的功能很管用.若目录被设为S位,则类似s位,但不为用户组设置搜索. 我们知道,linux系统是一个多用户系统,一个lunix系统可能有许多用户,同时/不同时的登陆,他们在自己的家目录创建文件,但也可能在一些公有文件夹里创建文件,典型的就是/tmp目录,这是一个任何用户在里面都可以创建文件的目录,任何用户对/tmp目录都具有读/写/执行权限,这意味着任何用户都可以删除/更名该目录下的文件.显然,对于/tmp这种公用目录,当然要使用一定的机制,来阻止“任何用户都可以删除/更名该目录下的文件”这种不该出现的现象,保证该目录下的文件,只有其文件属主才可以删除和更名,而其他用户不能删除和更名不属于他的文件.给/tmp目录设置粘滞位(umask),就实现了这一功能! 不带任何参数的umask可以查看当前用户的umask值,在实现创建文件或目录时对权限的设置,是一中临时设置,切换终端或用户后即失效. 目录:777-umask(不同用户的umask不同) 文件:666-umask 在Linux系统中文件不具有执行权限,文件的一位不能是x,umask过的权限值一位是奇数是会自动加1. 本文出自 “且听风吟” 博客,请务必保留此出处http://zhangjianjian.blog.51cto.com/2944771/628100 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: RHEL 6 软件安装下一篇: 安装oracle 10g on redhatlinux
关于SUID,SGID和sticky粘滞位的所有评论