我正在尝试使用批量设置一些用户帐户密码chpasswd
。密码应随机生成并打印到stdout
(我需要写下来或将它们放在密码存储区中),然后再传递到中chpasswd
。
天真的,我会这样
{
echo student1:$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo '')
echo student2:$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo '')
} | tee >(chpasswd)
但是,我担心将新密码作为命令行参数传递给echo
,因为参数通常对中的其他用户可见ps -aux
(尽管我从未看到中echo
出现任何行ps
)。
是否有其他方法可以在返回的密码前添加一个值,然后将其传递给chpasswd
?
echo
是内置的Shell。它不会在过程表中显示。