当前位置:  开发笔记 > 编程语言 > 正文

如何以root cronjob的身份运行不同用户的命令?

如何解决《如何以rootcronjob的身份运行不同用户的命令?》经验,为你挑选了2个好方法。

我似乎陷入了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"的方法吗?

谢谢!抢



1> 小智..:

su --shell =/bin/bash --session-command ="/ path/to/command -argument = something"username&

适合我(CentOS)



2> Jukka Matila..:

使用su而不是sudo:

su -c "rsync ..." apache


如果明确指定要与`-s`开关一起使用的shell(例如`-s/bin/sh`)会有帮助吗?至少在Ubuntu上,如果有问题的用户在/ etc/passwd中没有有效的shell,这似乎有帮助.
推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有