vsftpd中用到的冒险位讲解-阿里云开发者社区

开发者社区> 数据库> 正文

vsftpd中用到的冒险位讲解

简介:

 我们在搭建vsftpd的时候说过要限制用户删除其他用户的资料的时候,可以使用冒险位,当时并没有和大家细说,因为这是文件权限里面的东西,现在先简单的讲一下吧

除了读写执行权限以外,ext3文件系统还支持setuid 和setgid与sticky的特别权限。针对u,g,o,分别有set uid,set gid,及sticky。强制位与冒险位添加在执行权限的位置上。如果该位置上原已有执行权限。强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。强制位set uid与set gid在u和g的x位置上各采用一个s,冒险位(sticky)使用一个t。

  看到这里知道了吗?为什么我执行 “chmod 1777 文件名”之后,文件的其他权限的执行权限x会变成t了吧,那是因为

4(set uid)

2(set gid)

1(sticky),我为其他用户添加了冒险位,这个数字和我们修改权限的时候的w,r,x 所代表的数字式同样的道理。

设置冒险位和强制位方法如下:

set uid:chmod u+s 文件名

set gid:chmod g+s 文件名

sticky:chmod o+t 文件名,当然你也可以使用数字来修改权限哦

强制位对文件的作用

在可执行文件上,用户可以添加set uid和set gid。默认情况下,用户执行一个指令,会以该用户的身份来运行进程。指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。这里有一个很好的例子。你管理着几个大型的数据库系统,而对它们进行备份需要有系统管理权限。你写了几个脚本,并设置了它们的suid,这样你指定的一些用户只要执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,而且在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。另一个例子是/bin/passwd ,要读写/etc/passwd文件需要超级用户权限,但一般用户也需要随时可以改变自己的密码,所以/bin/passwd就设置了suid,当用户改自己密码的时侯就拥有了超级用户权限

强制位对目录的作用

默认情况下,用户建立的文件属于用户当前所在的组。目录上设置了setgid,表示在此目录中,任何人建立的文件,都会属于目录所属的组。

冒险位对文件的作用

就和我在vsftpd中和大家说的一样,在目录上添加了冒险位之后,A用户在本目录创建的文件,那么B用户是只能读取但没有权限去删除其他用户的文件的,就是这样,这个在vsftpd的公用目录里面还是很使用的哦




     本文转自 wqmsl 51CTO博客,原文链接:http://blog.51cto.com/wqmsl/310740,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章