2014-02-25 62 views
2

我正在使用ansible在遠程主機上運行特定命令(rosdep)的腳本。該命令必須以常規用戶身份運行,而不是root用戶,但偶爾會提示用戶輸入其sudo密碼以獲取用於安裝軟件的root權限。如何讓一個人能夠響應密碼提示

在運行遠程命令時,是否有任何方法指示負責人響應那些密碼提示?我不想用sudo運行整個命令,所以-K選項不適用於此目的。

+0

你是說在安裝過程中,你會得到一個交互式提示輸入密碼? – Mxx

+0

正確。有時,當我們運行命令時,它可能會提示(多次)sudo密碼,有時候它不會提示(如果不需要root權限)。 –

+0

'--ask-sudo-pass'不起作用? (http://docs.ansible.com/intro_getting_started.html#remote-connection-information) – rednaw

回答

1

考慮修改sudoers文件,以便這些特定命令可以在沒有這種密碼提示的情況下通過sudo運行。

最簡單的,但也許不是最好的辦法是使用:

tessa ALL=NOPASSWD: ALL 

,這意味着所有的命令都允許通過sudo的無密碼提示下運行。

更好的方法是找出哪些特定的命令需要sudo權限,然後將它們添加到sudoers文件中。

例如:

tessa ALL=NOPASSWD:/usr/bin/whoami 

可運送修改/etc/sudoers文件/模板作爲Ansible劇本的一部分。

+0

我想運行的一個命令必須在正常使用情況下不作爲sudo運行。當需要sudo訪問時,命令本身會在正常使用情況下爲sudo密碼生成交互式提示。所以我不認爲將這個命令添加到sudoers文件將解決問題。 –

+0

在簡要介紹rosdes的基礎上,它似乎會生成一個腳本來安裝任何必需的腳本(例如http://wiki.ros.org/ROS/Tutorials/rosdep)。在腳本里面有一些命令是通過sudo運行的(比如'sudo make install'),所以如果允許你在沒有密碼提示的情況下運行這個特定的命令,那麼一切都應該正常工作。 – Mxx

+0

好的捕獲;工作。 –

相關問題