能否为非文件所有者赋予 chmod 权限

fengyqf 2012-05-29 01:45:07
正常情况下,
好像只有文件所有者及root用户才可以通过chmod修改文件的mode. 那有没办法让其它用户也有这个权限呢?

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

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

于是想,是否有像acl一样设置非所有者就可以修改文件mod的方案?
...全文
225 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2012-05-30
  • 打赏
  • 举报
回复
目前还没遗憾过,让你失望了。
fengyqf 2012-05-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

ACL果断不懂,掩面路过。
[/Quote]
大哥,你说笑的吧! 个人感觉ACL是非常有用的东西,不会是终生遗憾,呵呵~~
qq120848369 2012-05-29
  • 打赏
  • 举报
回复
ACL果断不懂,掩面路过。
fengyqf 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 3 楼 的回复:

引用 1 楼 的回复:

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

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

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

我只是想让ftp用户可以修改某些文件的mod,不管这个文件是属于谁的;就像对一个文件设置一定acl规则,让ftp用户可以修改root的文件。


是这样的,使用acl,可以让指定用户(或用户组)有权限修改本属于其它用户的文件,即使是root用户的文件也可以。
所以我就假想了,是否chmod也有类似的方案。比如让ftp用户也可以对/var/www/html/ 下文件的chmod
现在看来linux中没有这样的手段。

"对于chmod,没有类似 对指定用户“提权”的方案。" -- 这样我就了解了

多谢指教!
qq120848369 2012-05-29
  • 打赏
  • 举报
回复
你想追求绝对的安全,

1:apache auth强制用户登录
2:自定义登录,强制用户登录

qq120848369 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 1 楼 的回复:

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

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

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

my_chmod里面……
[/Quote]

你自相矛盾,你想改root用户的东西,你又不敢给s权限,这算什么。

用户终归是走你的接口的,你完全有能力在php里做足够安全的过滤规则。

但对于chmod,并没有类似 对指定用户“提权”的方案。

当然,你可以提权/bin/chmod这个程序的s,但你没法对C API:chmod提权,这毋庸置疑。
fengyqf 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

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

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

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

my_chmod里面调用chomd修改命令行传入的文……
[/Quote]

我说的是 “文件所有者及root用户”。。。 呵呵

php以nobody运行,再加上对php_fpm进程的chroot,应该是相当安全的了

你说的my_chmod,是要自己写一个C程序并编译,然后把它用于s权限上,这好像就复杂了,反倒容易造成安全隐患。
另外为安全起见我的php是禁用system等函数的

也就是说:
对于文件读写权限而言,可以通过acl来让指定用户(非文件所有者)拥有读写权限
但对于chmod,并没有类似 对指定用户“提权”的方案。
VNROOY 2012-05-29
  • 打赏
  • 举报
回复
学习的 来看看
qq120848369 2012-05-29
  • 打赏
  • 举报
回复
谁说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) . "'");

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧