我似乎陷入了 NFS 限制和 Cron 限制之间。
所以我有 root cron(在 RHEL5 上)运行一个 shell 脚本,除其他外,需要通过 NFS 挂载 rsync 一些文件。并且 NFS 挂载上的文件由模式 700 的 apache 用户拥有,因此只有 apache 用户可以运行 rsync 命令——以 root 身份运行会产生权限错误(NFS 显然是一种罕见的情况,其中 root 用户是不是万能的?)
当我只想手动运行 rsync 时,我可以使用“sudo -u apache rsync ...”但是 sudo 在 cron 中没有工作——它说“sudo:抱歉,你必须有一个 tty 才能运行 sudo”。
我不想将整个脚本作为 apache 运行(即来自 apache 的 crontab),因为脚本的其他部分确实需要 root ——这只是一个需要作为 apache 运行的命令。而且我真的不希望更改文件的模式,因为这将涉及对其他应用程序的重大更改。
一定有办法从cron完成“sudo -u apache”??
谢谢!抢