2015-09-08 22 views
0

使用以下腳本在puppet版本3.7中調用redhat linux中的sudo命令。如何在Linux下使用Puppet調用sudo命令

Exec { 

    cwd => "/home/dev02", 
    command => "sudo -su dev01", 
    path => "/usr/bin/", 
    logoutput => "on_failure", 
} 

我沒有得到任何錯誤,但在執行這個腳本後, 當我檢查,看看我的「WHOAMI」用戶,還是我看到的dev02 而不是DEV01。

有人可以幫我解決這個問題嗎?

在此先感謝。

回答

4

由於所有exec資源命令都在產生的進程中執行,因此該命令不會執行您期望的操作。如果您想以另一個用戶的身份執行某個命令,請輸入exec resource has a user parameter

例如:

exec { 'Touch some file': 
    cwd  => '/home/dev02', 
    command => 'touch some_file', 
    path  => '/usr/bin/', 
    logoutput => 'on_failure', 
    user  => 'dev01' 
} 
+0

甚至* *這不會奇蹟般地調換你的交互shell與不同的UID運行。通過腳本執行此操作的唯一方法是將其作爲** shell **腳本和** source ** - 該shell腳本(即,在當前shell *中運行命令*)。其他任何東西都不會影響您的運行過程。 –