【发布时间】:2010-11-22 16:59:44
【问题描述】:
我似乎陷入了 NFS 限制和 Cron 限制之间。
所以我让 root cron(在 RHEL5 上)运行一个 shell 脚本,除其他外,它需要通过 NFS 挂载 rsync 一些文件。并且 NFS 挂载上的文件由模式 700 的 apache 用户拥有,因此只有 apache 用户可以运行 rsync 命令——以 root 身份运行会产生权限错误(NFS 显然是一种罕见的情况,其中 root 用户是不是全能的?)
当我只想手动运行 rsync 时,我可以使用“sudo -u apache rsync ...”但是 sudo no workie in cron -- 它说“sudo:抱歉,你必须有一个 tty 才能运行 sudo ”。
我不想将整个脚本作为 apache 运行(即来自 apache 的 crontab),因为脚本的其他部分确实需要 root ——这只是一个需要作为 apache 运行的命令。而且我真的不希望更改文件的模式,因为这将涉及对其他应用程序的重大更改。
一定有办法从 cron 中完成“sudo -u apache”??
谢谢! 抢
【问题讨论】:
-
将其移至 SuperUser.com 可能会更好。
-
这是一个老问题,但在搜索排名中仍然很高,并且没有一个答案解决了为什么 root 权限不适用于 NFS 挂载。对于其他绊脚石的人来说,原因是 root_squash。这个博客有一个相当不错的解释为什么这个选项是必要的并且通常是默认设置的。 fullyautolinux.blogspot.com/2015/11/…