我似乎陷入了NFS限制和Cron限制之间.
所以我有root cron(在RHEL5上)运行一个shell脚本,除其他外,需要通过NFS挂载rsync一些文件.NFS挂载上的文件由模式700的apache用户拥有,因此只有apache用户可以运行rsync命令 - 以root身份运行会产生权限错误(NFS很少见,显然,root用户是不是全能的?)
当我只想手动运行rsync时,我可以使用"sudo -u apache rsync ..."但是在cron中没有工作 - 它说"sudo:对不起,你必须有一个tty来运行sudo".
我不想将整个脚本作为apache(即来自apache的crontab)运行,因为脚本的其他部分确实需要root - 它只是一个需要作为apache运行的命令.而且我真的不想改变文件的模式,因为这将涉及对其他应用程序的重大更改.
有必要从cron完成"sudo -u apache"的方法吗?
谢谢!抢
su --shell =/bin/bash --session-command ="/ path/to/command -argument = something"username&
适合我(CentOS)
使用su
而不是sudo
:
su -c "rsync ..." apache