Linux文件系统的管理所有权和权限(2)
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-14
id)和 sgid(设置组 id).当可执行的程序设置为 suid 访问模式,它就会开始运行,好像是由文件所有者启动而不是由真正启动它的用户启动.类似的,设置为 sgid 访问模式,程序就会运行,好像启动用户属于文件组,而不属于他所有的组.可以单独或者同时设置两个访问模式. 清单 8 显示了可执行的 passwd 由 root 所有: 清单 8. /usr/bin/passwd 上的 suid 访问模式 [ian@echidna ~]$ ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 34368 Apr 6 2010 /usr/bin/passwd 请注意,在用户的权限三件套中 x 的位置上有一个 s.这就表示,对这个特定的程序来说,suid 和可执行位已经被设置.,当 passwd 运行时,它就会像 root 用户使用完全的 superuser 访问一样加载它运行,而不是作为想运行该程序的用户. passwd 和 root 访问一起运行,它可以修改 /etc/passwd. suid 和 sgid 位与长目录清单中用户和组的 x 占据相同的空间.如果文件是可执行的,suid 或 sgid 位如果已设置,将会显示为小写的 s,否则就显示为大写的 S. 拥有帝国一切,皆有可能。欢迎访问phome.net 虽然 suid 和 sgid 很便利,甚至在很多环境下是必需的,但是这些访问模式不适当的使用会造成系统安全上的漏洞.您要尽量少地使用 suid 程序.passwd 命令是少数 为 suid 的命令之一. 设置 suid 和 sgid suid 和 sgid 位使用字母 s 在符号上进行设置和重设;例如,u s 设置 suid 访问模式,g-s 删除 sgid 模式.在八进制格式中,suid 在第一位(高阶)为值 4,而 sgid 是值 2. 目录和 sgid 当一个目录使用 sgid 模式时,在这个目录中创建的任何文件和目录将会继承目录的组 id.这个对那些被从事同一项目的一组人使用的目录树极为有用. 清单 9 显示了用户 greg 任何设置一个 development 组所有用户都能使用的目录,以及一个示例,用户 gretchen 如何在目录上创建一个文件.正如所创建的,文件 gretchen.txt 允许组成员编辑文件,因此 gretchen 使用 chmod g-w 来取消组的写功能. 清单 9. sgid 访问模式和目录 [greg@echidna ~]$ mkdir lpi101 [greg@echidna ~]$ chmod g ws lpi101 [greg@echidna ~]$ ls -ld lpi101 drwxrwsr-x. 2 greg development 4096 Nov 30 13:30 lpi101/ [greg@echidna ~]$ su - gretchen Password: [gretchen@echidna ~]$ touch ~greg/lpi101/gretchen.txt [gretchen@echidna ~]$ ls -l ~greg/lpi101/gretchen.txt -rw-rw-r--. 1 gretchen development 0 Nov 30 14:12 home/greg/lpi101/gretchen.txt [gretchen@echidna ~]$ chmod g-w ~greg/lpi101/gretchen.txt [gretchen@echidna ~]$ ls -l ~greg/lpi101/gretchen.txt -rw-r--r--. 1 gretchen development 0 Nov 30 14:12 /home/greg/lpi101/gretchen.txtdevelopment 组的任何成员现在都能够在用户 greg 的 lpi101 目录上创建文件了.正如 清单 10 所示,组的其他用户不能升级文件 gretchen.txt.但是,他们有对目录的写权限,因此可以删除文件. 清单 10. sgid 访问模式和文件所有权 [gretchen@echidna ~]$ su - tom Password:[tom@echidna ~]$ echo "something" 》 ~greg/lpi101/gretchen.txt-bash: /home/greg/lpi101/gretchen.txt: Permission denied[tom@echidna ~]$ rm ~greg/lpi101/gretchen.txtrm: remove write-protected regular empty file `/home/greg/lpi101/gretchen.txt''? y[tom@echidna ~]$ ls -l ~greg/lpi101/total 0粘贴位 您刚看到了任何有目录写权限的人如何删除目录中的文件.这对一个工作组项目是可接受的,但是对全球共享的文件空间,例如 /tmp 目录,是不希望的.幸运的是,有解决方案. 拥有帝国一切,皆有可能。欢迎访问pho |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Linux文件系统的管理所有权和权限(2)的所有评论