useradd 命令截断使用 -p 选项提到的密码

useradd 命令截断使用 -p 选项提到的密码

命令如下,在wind River linux机器上执行。

useradd vpatest -c Pav -g guest -G log -s /data/bin/cli.sh -p $6$cem^CM38$4YdQAPgu8EXNG3ecurYk4eN1sIiYNauBdHFRJew3l/Xa8PyOjACD1xNDhoocVwBzBUN9BlTXXJ/oiWHwV.fhL1

/etc/shadow文件中它只写入

YdQAPgu8EXNG3ecurYk4eN1sIiYNauBdHFRJew3l/Xa8PyOjACD1xNDhoocVwBzBUN9BlTXXJ/oiWHwV.fhL1并截断$6$cem^CM38$4

有什么办法可以避免这种情况并写下完整密码吗?我将获得加密的密码,并且需要将其写入影子文件中。否则,还有其他可以使用的实用程序吗?

答案1

由于您的输入字符串(密码)包含可由 shell 解释为具有特殊含义的字符(例如$),因此请将密码字符串包装在一对 中'',例如

 useradd vpatest -c Pav -g guest -G log -s /data/bin/cli.sh -p '$6$cem^CM38$4YdQAPgu8EXNG3ecurYk4eN1sIiYNauBdHFRJew3l/Xa8PyOjACD1xNDhoocVwBzBUN9BlTXXJ/oiWHwV.fhL1'

相关内容