我正在使用ansible在遠程主機上運行特定命令(rosdep)的腳本。該命令必須以常規用戶身份運行,而不是root用戶,但偶爾會提示用戶輸入其sudo密碼以獲取用於安裝軟件的root權限。如何讓一個人能夠響應密碼提示
在運行遠程命令時,是否有任何方法指示負責人響應那些密碼提示?我不想用sudo運行整個命令,所以-K選項不適用於此目的。
我正在使用ansible在遠程主機上運行特定命令(rosdep)的腳本。該命令必須以常規用戶身份運行,而不是root用戶,但偶爾會提示用戶輸入其sudo密碼以獲取用於安裝軟件的root權限。如何讓一個人能夠響應密碼提示
在運行遠程命令時,是否有任何方法指示負責人響應那些密碼提示?我不想用sudo運行整個命令,所以-K選項不適用於此目的。
考慮修改sudoers文件,以便這些特定命令可以在沒有這種密碼提示的情況下通過sudo
運行。
最簡單的,但也許不是最好的辦法是使用:
tessa ALL=NOPASSWD: ALL
,這意味着所有的命令都允許通過sudo的無密碼提示下運行。
更好的方法是找出哪些特定的命令需要sudo權限,然後將它們添加到sudoers文件中。
例如:
tessa ALL=NOPASSWD:/usr/bin/whoami
可運送修改/etc/sudoers
文件/模板作爲Ansible劇本的一部分。
我想運行的一個命令必須在正常使用情況下不作爲sudo運行。當需要sudo訪問時,命令本身會在正常使用情況下爲sudo密碼生成交互式提示。所以我不認爲將這個命令添加到sudoers文件將解決問題。 –
在簡要介紹rosdes的基礎上,它似乎會生成一個腳本來安裝任何必需的腳本(例如http://wiki.ros.org/ROS/Tutorials/rosdep)。在腳本里面有一些命令是通過sudo運行的(比如'sudo make install'),所以如果允許你在沒有密碼提示的情況下運行這個特定的命令,那麼一切都應該正常工作。 – Mxx
好的捕獲;工作。 –
你是說在安裝過程中,你會得到一個交互式提示輸入密碼? – Mxx
正確。有時,當我們運行命令時,它可能會提示(多次)sudo密碼,有時候它不會提示(如果不需要root權限)。 –
'--ask-sudo-pass'不起作用? (http://docs.ansible.com/intro_getting_started.html#remote-connection-information) – rednaw