Linux bash中与Windows兼容的密码

Linux bash中与Windows兼容的密码,linux,bash,shell,unix,Linux,Bash,Shell,Unix,我有一个脚本,它接受windows兼容的密码,并使用这些密码为计算机上的用户创建一个帐户,并将其作为系统密码 我遇到了一个问题,如果我逃避他们,并通过它来创建一个帐户,它是字面上理解的。windows中允许使用单引号和双引号 示例用户进入hello'world 转义为hello\\ world,并作为hello\\ world存储在数据库中。 用户输入hello’world登录。 计算机需要正确的密码,用户无法登录 添加代码: echo "somepass" | sudo -S /Applica

我有一个脚本,它接受windows兼容的密码,并使用这些密码为计算机上的用户创建一个帐户,并将其作为系统密码

我遇到了一个问题,如果我逃避他们,并通过它来创建一个帐户,它是字面上理解的。windows中允许使用单引号和双引号

示例用户进入hello'world 转义为hello\\ world,并作为hello\\ world存储在数据库中。 用户输入hello’world登录。 计算机需要正确的密码,用户无法登录

添加代码:

echo "somepass" | sudo -S /Applications/Setup\ user.app/Contents/Resources/nugget "Joe User" "juser" "ju$er'Pa$$".345"

基本上,为用户创建了一个帐户,必须使用另一个管理员帐户,并在gui中输入ju$er'Pa$$”的密码。345,用户可以从那里很好地登录

这是你想要的吗?(显然,您需要一种安全的方法来检索密码,可以从
read
输入,也可以从文件句柄或管道读取)


“那你就错了,”艾布拉姆斯说,“是的,这对我来说是显而易见的。我不会问我是否知道正确的方法。请添加您正在使用的脚本/代码。并且不要在多个SE站点上交叉发布相同的问题。@BobR您对问题的描述和发布的代码似乎不一样:您描述了一个有问题的脚本,请求GUI输入,然后发布了一行不匹配的引号,用于硬编码密码。你能把你遇到问题的脚本发出来吗?
neech@nicolaw.uk:~ $ read -r password ; printf '%q\n' "$password"
ju$er'Pa$$".345
ju\$er\'Pa\$\$\".345
neech@nicolaw.uk:~ $