我想在shell腳本中檢測到我要通過sudo運行的命令實際上是否可以通過sudo運行。在較新版本的sudo中,我可以執行sudo -l「命令」,這給了我完全我想要的結果。檢測命令是否可由sudo執行
但是,一些系統有一箇舊版本的sudo,其中-l「Command」不可用。我想要做的另一種方法是嘗試運行命令,然後查看sudo是否提示輸入密碼。但是,我沒有看到一個簡單的方法來做到這一點,因爲sudo將密碼提示寫入TTY而不是通過stdout。
是否有其他人知道一個簡單的方法來做到這一點?
我還應該提一下「expect」似乎也不適用於舊版sudo修訂版的系統。
僅供參考須藤的「看病難」的版本似乎版本1.6.8
sudoers文件似乎是root:root或root:wheel 110默認情況下,除非你可以'sudo cat/less/view',否則你將無法讀取它。 – Kevin
至少需要一個'sudo cat/etc/sudoers'來查看文件 –
如果我只想查看sudoers文件 - 手動 - 我可以手動發出sudo -l而不用任何參數並解析通配符。不過,我需要以自動化的方式做到這一點。我只需要新版本在舊版本中具有的-n或-l 功能。我猜它需要做一些類似於輸出sudo -l,寫入文件,將sudo模式轉換爲正則表達式,然後運行我想要針對正則表達式執行的命令。更多的工作,然後我想,但可能沒有辦法解決它:/ –
z4ce