允許自訂 bash 指令的權限,而不允許底層指令的權限

允許自訂 bash 指令的權限,而不允許底層指令的權限

我們的一台伺服器上有一個自動腳本,由觀察用戶運行。它需要告訴由主用戶運行的另一個腳本來更新日誌檔案。

代碼是sudo kill -UPDATE_LOG pid

顯然,觀察用戶必須具有運行此命令的權限。但是,出於顯而易見的原因,我不想授予此自動腳本終止進程的權限。

我想做類似的事情alias update_log='kill -UPDATE_LOG; grant update_log on observing_user

答案1

可能使用

sudo pkill -UPDATE_LOG <process-name>

而不是kill 就足以滿足您的需求?

解決此問題的另一種方法是將您想要透過 sudo 提供的命令嵌入到自訂腳本或 exec 中以執行此操作。

答案2

好吧,所以我在更改關鍵字後找到了答案。

也可以看看: 如何阻止sudo使用者執行特定指令?

步驟1:

sudo visudo

語法是這樣的:

user host=command

這將授予 sudo 對給定命令的存取權限。你也可以像這樣進行小組活動

%group host=command

您可以在 3 個「列」中的任何一個中使用 ALL 來將其套用至任何主機、任何指令或任何使用者。

我的解決方案是

observing_user ALL=kill -USR1 *

相關內容