簡體   English   中英

cron:以root身份運行.sh

[英]cron: Run .sh as root

首先要弄清楚:我正在使用一個脫機的虛擬機-安全性因此無法滿足我的需求。

我有一個簡單的bash腳本,該腳本執行使用wmctrl正常關閉進程。 不能選擇殺死:

* * * * * sudo wmctrl -xc notepadqq-bin.Notepadqq
* * * * * /bin/echo "works" >> /home/usr/cron.log

我嘗試了sudo crontab -ecrontab -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)
  • cron選項卡行“ * * * * * sudo wmctrl -d >> /home/usr/cron.log”的結果顯示,從cron的角度來看,此“ notepadqq-bin.Notepadqq”仍處於活動狀態(如果不是這種情況檢查wmctrl的環境變量是否從正確的角度保留。讓我知道這個假設是錯誤的)
  • 您的評論“甚至試圖回顯“密碼” | sudo -S rm somefile,但這對我也不起作用。” 表示您有使用sudo的密碼
  • 您的意思是您的評論“因此沒有安全性可以滿足我的需求”

確保Sudoers允許腳本調用

鑒於這些假設,我建議您首先研究一下sudo的設置方法:

嘗試這個:

(不要在沒有visudo命令的情況下編輯此文件, visudo可能會損壞系統) export EDITOR=vi ; sudo visudo -f /etc/sudoers export EDITOR=vi ; sudo visudo -f /etc/sudoers

您將需要以下內容: %sudo ALL=(ALL) NOPASSWD: ALLcron ALL=(ALL) NOPASSWD: ALL

假設您可以確定問題不是sudo的密碼提示問題,並且默認情況下該命令(實際上是通過sudo運行的所有命令)都以root身份運行(當不使用-u設置給另一個用戶時)

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM