有沒有辦法讓sudo在Ruby腳本中保持活躍狀態?即我可以要求用戶在腳本期間輸入一次他們的sudo密碼?在Ruby腳本中保持sudo活着
在bash,你可以這樣做:
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
信用:Cowboy
有沒有辦法讓sudo在Ruby腳本中保持活躍狀態?即我可以要求用戶在腳本期間輸入一次他們的sudo密碼?在Ruby腳本中保持sudo活着
在bash,你可以這樣做:
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
信用:Cowboy
做到這一點的最好辦法,在我opion是德如下:
授予此燙髮新用戶有風險但有效。
有兩種情況,都不需要你做憑證或授權的任何程序緩存:
用戶可以與sudo
運行任意程序。
只需要腳本與sudo
一起運行,而不是在腳本中調用sudo
。假設最糟糕的是,無論如何你的用戶會這樣做。
用戶只能用sudo
運行某些程序。
在這種情況下,可以假定用戶可以運行腳本所需的命令sudo
,但不允許腳本本身運行。無論是
A)可以讓系統管理員進一步配置sudo
,以允許用戶在沒有密碼運行這些命令,或
二)系統管理員將不做出的改變,在這種情況下你不應該繞過這個決定。
在任何情況下,確定何時或是否需要密碼sudo
不是您的程序的工作。
請記住,每次執行系統命令時,都是在單獨的子shell中執行此操作。我想在很多情況下,需要提升權限的腳本可以使用sudo運行,例如, 'sudo script.rb',而不是試圖在腳本中做某件事。 –
我強烈建議不要這樣做。這將意味着可能違反安全規定,出現問題的可能性很大。 @TomFenech也是正確的。 –