linux 尝试更改文档文件中的使用密码时出现身份验证令牌操作错误

1l5u6lss  于 2022-12-26  发布在  Linux
关注(0)|答案(1)|浏览(239)

我正在尝试更改在运行dockerfile期间创建的用户的密码:

RUN groupadd --system ${UNAME} --gid ${UID} && \
    useradd --uid ${UID} --system --gid ${UNAME} --home-dir /home/${UNAME} --create-home --comment "Docker image user" ${UNAME} && \
    chown -R ${UNAME}:${UNAME} /home/${UNAME} && \
    usermod -aG sudo ${UNAME}

RUN echo '${UNAME}:password' | chpasswd

第二个RUN命令失败,并显示

Authentication token manipulation error chpasswd: (line 1, user
${UNAME}) password not changed ```

做同样的事情,确实有效:

RUN useradd pi && \
    mkdir -p /home/pi && \
    chown pi /home/pi && \
    echo 'pi:password' | chpasswd

我不明白其中的区别。我只想给予${UNAE}一个固定密码password

jdzmm42g

jdzmm42g1#

请确保这不是因为使用了实际密码,如moby/moby问题5704中所述。
在我的情况下,密码太简单了,需要使用一个更强的,使用大写和小写字母,数字和符号。例如,P2sswrd!!!
并添加echo "${UNAME}"以验证${UNAME}是否具有预期值。
最后,尝试

RUN echo "${UNAME}:password" | chpasswd
        ^^^               ^^^

使用""将确保变量${UNAME}被其值替换。

相关问题