我似乎被困在NFS限制和Cron限制之间。如何以root用户的cronjob身份从不同的用户运行命令?
因此,我已经有了运行shell脚本的root cron(在RHEL5上),除此之外,还需要通过NFS挂载来rsync一些文件。 NFS mount上的文件由模式为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”?
谢谢! 抢
将此移至SuperUser.com可能会更好。 – Robert 2009-08-25 17:16:03
这是一个老问题,但在搜索等级中仍然很高,并且没有答案解决为什么root权限不适用于NFS挂载。对于其他任何人而言,这是因为root_squash。这个博客有一个相当不错的解释,为什么这个选项是必要的,通常默认设置。 http://fullyautolinux.blogspot.com/2015/11/nfs-norootsquash-and-suid-basic-nfs.html – BryKKan 2018-01-25 22:54:51