[英]cron: Run .sh as root
首先要弄清楚:我正在使用一個脫機的虛擬機-安全性因此無法滿足我的需求。
我有一個簡單的bash腳本,該腳本執行使用wmctrl正常關閉進程。 不能選擇殺死:
* * * * * sudo wmctrl -xc notepadqq-bin.Notepadqq
* * * * * /bin/echo "works" >> /home/usr/cron.log
我嘗試了sudo crontab -e
和crontab -e
,cron.log每分鍾寫一次,但是wmctrl命令不起作用。
我什至試圖echo "password" | sudo -S rm somefile
echo "password" | sudo -S rm somefile
但這對我也不起作用。
TIA!
首先,我將做一些假設(如果這些假設有誤,請更正我,我會盡力為您調整答案)
cron
而不是任何舊的工作經理(我認為這是安全的) cron
並希望cronjobs
地實際運行(這對我來說似乎很奇怪,但可能對手頭的問題並不重要)(編輯:我也同意另一個人的建議來查看https ://stackoverflow.com/tags/cron/info,因為它提供了有關使用cron的更多深入討論) sudo
來獲得root特權,而不希望cron
守護進程以root
身份運行(在大多數系統上是正常的) chown 0:0 $(which wmctrl)
chmod 4755 $(which wmctrl)
或更嚴格的chmod 4755 $(which wmctrl)
鑒於這些假設,我建議您首先研究一下sudo的設置方法:
(不要在沒有visudo
命令的情況下編輯此文件, visudo
可能會損壞系統) export EDITOR=vi ; sudo visudo -f /etc/sudoers
export EDITOR=vi ; sudo visudo -f /etc/sudoers
您將需要以下內容: %sudo ALL=(ALL) NOPASSWD: ALL
或cron ALL=(ALL) NOPASSWD: ALL
假設您可以確定問題不是sudo的密碼提示問題,並且默認情況下該命令(實際上是通過sudo
運行的所有命令)都以root身份運行(當不使用-u
設置給另一個用戶時)
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.