在 docker 中使用密码时出现错误 "passwords do not match"
Got error "passwords do not match" using passwd in docker
我想在 Docker 中为 FTP 创建一个具有随机密码的用户。 Docker 文件的部分如下所示:
RUN useradd web
RUN export ftppass=`cat /proc/sys/kernel/random/uuid`
RUN echo -e "$ftppass\n$ftppass" | passwd web
但是我在最后一行得到了一个错误:
New password: Retype new password: Sorry, passwords do not match.
passwd: Authentication token manipulation error
passwd: password unchanged
为什么即使我使用相同的变量,密码也不匹配?
更新:
我发现 echo -e "$ftppass\n$ftppass"
的输出是:
Step 9/15 : RUN echo -e "$ftppass\n$ftppass"
---> Running in ddd97df41d85
-e
Removing intermediate container ddd97df41d85
---> a64b606ea898
Step 10/15 : ...
为什么它不适用于 echo -e
我的 $ftppass 在哪里?
已解决,Docker文件的新部分是:
RUN useradd web
RUN cat /proc/sys/kernel/random/uuid > /etc/vsftp-password
RUN echo "web:"`cat /etc/vsftp-password` | chpasswd
RUN echo "ftp info web:"`cat /etc/vsftp-password`
谢谢大家,新年快乐~
与其创造性地使用 passwd
,不如看看它的 manual page,它在“另见”部分提到了 chpasswd
。
passwd
命令用于交互使用,它不像大多数其他程序那样读取其输入,因为输入不会回显到屏幕。
我想在 Docker 中为 FTP 创建一个具有随机密码的用户。 Docker 文件的部分如下所示:
RUN useradd web
RUN export ftppass=`cat /proc/sys/kernel/random/uuid`
RUN echo -e "$ftppass\n$ftppass" | passwd web
但是我在最后一行得到了一个错误:
New password: Retype new password: Sorry, passwords do not match.
passwd: Authentication token manipulation error
passwd: password unchanged
为什么即使我使用相同的变量,密码也不匹配?
更新:
我发现 echo -e "$ftppass\n$ftppass"
的输出是:
Step 9/15 : RUN echo -e "$ftppass\n$ftppass"
---> Running in ddd97df41d85
-e
Removing intermediate container ddd97df41d85
---> a64b606ea898
Step 10/15 : ...
为什么它不适用于 echo -e
我的 $ftppass 在哪里?
已解决,Docker文件的新部分是:
RUN useradd web
RUN cat /proc/sys/kernel/random/uuid > /etc/vsftp-password
RUN echo "web:"`cat /etc/vsftp-password` | chpasswd
RUN echo "ftp info web:"`cat /etc/vsftp-password`
谢谢大家,新年快乐~
与其创造性地使用 passwd
,不如看看它的 manual page,它在“另见”部分提到了 chpasswd
。
passwd
命令用于交互使用,它不像大多数其他程序那样读取其输入,因为输入不会回显到屏幕。