日期:2014-05-16  浏览次数:20632 次

能否为非文件所有者赋予 chmod 权限
正常情况下,
好像只有文件所有者及root用户才可以通过chmod修改文件的mode. 那有没办法让其它用户也有这个权限呢?

就像 通过acl让其它非所有者有权修改文件一样

目的是在web站点的ftp权限设定下用的,
web站点的文件的所有者是root, 而php_fpm以nobody用户运行。这样即使php程序的有漏洞,也不至于被cracker利用而修改root用户的文件。
但这样情况下,通过ftp客户端修改文件的mode就没办法了(ftp设置的不允许root用户登录)

于是想,是否有像acl一样设置非所有者就可以修改文件mod的方案?

------解决方案--------------------
谁说root才可以。。文件的用户主对文件的模式具有修改权利。

php以nobody运行比较安全了,只能说比较安全,毕竟nobody对于其他文件是other用户,说不定还是有权限的。

ftp非root的话,你可以提供一个s权限的C程序my_chmod:
chown root my_chmod
chmod u+s+x o+x

my_chmod里面调用chomd修改命令行传入的文件名的权限mode即可。

在php里:

system('./mychmod ' . "'" . escapeshellcommand(filename) . "' '" . escapeshellcommand(mode) . "'");

------解决方案--------------------
学习的 来看看