0
OS: Ubunut 14.04
我有一個shell腳本,我想以不同的用戶身份運行腳本的一部分。我嘗試添加下面給我的腳本:在shell腳本中切換用戶
echo 'user_password' | su user_name
cd ~
ls -l
但我收到以下消息:
su: must be run from a terminal
任何想法?
OS: Ubunut 14.04
我有一個shell腳本,我想以不同的用戶身份運行腳本的一部分。我嘗試添加下面給我的腳本:在shell腳本中切換用戶
echo 'user_password' | su user_name
cd ~
ls -l
但我收到以下消息:
su: must be run from a terminal
任何想法?
請記住,以明文形式存儲用戶密碼是一種不好的安全措施。
如果您確實想從STDIN讀取密碼,則可以使用-S
選項sudo
,該選項在su
命令中似乎沒有對應項。
爲了更好的解決方案,這不涉及以明文形式存儲密碼,請參閱askubuntu thread上的答案。
我用這個爲例。我的腳本在LAMP堆棧上安裝rails/ruby。所以,我不是真的存儲密碼。該腳本先前要求輸入用戶名和該用戶的密碼。然後創建用戶,並將用戶添加到sudoers。現在,我想以該用戶身份登錄,以便能夠繼續設置ruby/rails,並且寧願從單個腳本中完成所有操作。 – EastsideDeveloper
行。如果你做'echo $ password | sudo -u username -S yourcommand',它應該工作。 – danmcardle