2017-06-12 132 views
0

我試圖構建docker文件,其中一個要求是使用sudo權限創建用戶。使用sudo權限在docker容器中添加新用戶

這裏是bash腳本

​​

和泊塢窗撰寫文件。

FROM ros 
RUN apt-get update 
RUN apt-get install -y sudo 
ADD run.sh /usr/local/bin/run.sh 
RUN chmod +x /usr/local/bin/run.sh 
CMD ["/usr/local/bin/run.sh"] 

當我運行此版本時出現以下錯誤。

chpasswd: (user testuser) pam_chauthtok() failed, error: 
Authentication token manipulation error 
chpasswd: (line 1, user testuser) password not changed 

回答

2

我認爲你錯誤地解釋了需求。使用創建用戶sudo權限與使用sudo命令創建用戶的權限不同。

取決於分佈,一個用戶可能運行sudo如果它屬於須藤組(後者是與Ubuntu的情況下,這是通過ROS使用的鹼圖像)。

我強烈建議您使用useradd命令而不是adduser。後者在Debian &基於RedHat的發行版中不同,前者在Linux發行版中是相同的,如果不使用長期版本,則甚至可以是* BSD。另外,前者允許您在命令行中指定補充組(-G選項)。

useradd -m -s /bin/bash -G sudo newuser

如果使用-p選項,你也可以在加密形式提供密碼(在手冊頁術語應該是散列形式),而不需要在以後使用chpasswd。使用mkpasswd -m sha-512的輸出。 (mkpasswd命令存在於whois包中)。如果您打算使用chpass,請使用-e選項以加密的形式提供密碼。切勿使用明文。