我一直在尝试通过一个简单的shell脚本在我的Arch Linux系统上建立一个新用户,遵循几个来源的建议,这些来源指出printf "$password\n$password\n" | (passwd $user)
或类似echo -e "$password\n$password\n" | (passwd $user)
应该诀窍。
然而,在这样做的同时,虽然它确实成功并报告密码已更新,但尝试通过ssh登录该用户由于某种原因不起作用。有谁知道为什么,以及如何解决它?
我尝试删除变量,并简单地设置密码和用户静态文本。完全相同的命令行; printf "123abcXYZ\n123abcXYZ\n" | (passwd dummy)
在shell中工作,我可以通过ssh登录,但是使用相同的行并将其放在脚本中,它会说密码错误。
有什么想法吗?
答案 0 :(得分:1)
这可能是因为密码包含\
或%
等字符,可以由printf
解释,也许以下内容可以解决:
printf '%s\n%s\n' "$password" "$password"
也可以写(因为printf隐式循环)
printf '%s\n' "$password" "$password"
答案 1 :(得分:0)
高兴 - 我发现了错误!
它与passwd命令或字符完全无关。相反,仅仅为分配用户的组评估变量只是一个错误 - 我的坏!谢谢你的答案:)