使用sudo权限在docker容器中添加新用户
我试图build立一个docker文件,其中一个要求是用sudo权限创build一个用户。
这里是bash脚本
# quietly add a user without password adduser --quiet --disabled-password --shell /bin/bash --home /home/newuser --gecos "testuser" newuser # set password echo "testuser:testuser" | sudo chpasswd
和泊坞窗撰写文件。
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
我认为你错误地解释了这些要求。 使用sudo权限创build用户与使用sudo
命令创build用户不同。
根据分布情况,如果用户属于wheel或sudo组,则用户可以运行sudo
(后者就是使用ros的基本映像Ubuntu)。
我强烈build议您使用useradd
命令而不是adduser
。 后者在基于Debian和RedHat的发行版中是不同的,不同于前者,在Linux发行版中是相同的,如果不使用long选项,甚至是* BSD。 另外,后者允许您在命令行中指定补充组( -G
选项)。
useradd -m -s /bin/bash -G sudo newuser
如果使用-p
选项,则还可以以encryptionforms提供密码(手册页中的术语应该是散列forms ),而不需要稍后使用chpasswd
。 使用mkpasswd -m sha-512
的输出。 ( mkpasswd
命令存在于whois软件包中)。 如果您打算使用chpass
,请使用-e
选项以encryptionforms提供密码。 永远不要使用明文。