我似乎被困在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