2015-10-13 132 views
0

我在寫一個應用程序,管理員必須輸入他的用戶名和密碼。而通過這樣做,終端在Ubuntu的啓動,具有以下命令:啓動一個新的終端並運行命令

adduser admin 
passwd admin 
su - postgres 
psql postgres 
# run postgres ccommands ie grant all privileges with a password for the user 

我不想讓用戶輸入任何東西,因爲形式提供了數據庫的Postgres和用戶名和密碼的名稱postgres ...

所有用戶需要輸入的是他的密碼和管理員系統密碼。

感謝

+0

你問我們寫程序給你,或者是有你沒問題的特定部分理解? –

+0

我知道我可以在pythi python中編寫它:os.system(「gnome-terminal -e'bash -c \」sudo adduser tom \「'」)。我可以寫多行嗎? –

+0

我只想要一段代碼,我可以啓動ubuntu終端並自動運行某些命令..不止一個是精確的..我只能運行一個命令,但我想在終端窗口中運行很多命令 –

回答

0

如果你真的想發動終端,你需要在命令列表傳遞給終端催生了殼。這個語法在一定程度上取決於所使用的終端。

對於gnome-terminal你想:

gnome-terminal -e '... command ...' 

例如

gnome-terminal -e 'sh -c "adduser admin && passwd admin && sudo -u postgres psql"' 

我建議使用sudosu雖然,如上所示。

&&手段「只運行下一個命令,如果前一個返回零(成功)」