如何通过 Shell 脚本更改用户名

How to change username via Shell Script

我正在编写一个脚本来仅使用变量来更改用户的名称,这样用户就看不到实际的命令。我已经做了其他事情,比如更改用户的文件夹,但出于某种原因,尝试使用相同的方法无法正常工作,我希望你能理解我的错误并帮助我。

            echo "Give me the old username"
            read name
            echo "Give me the new username"
            read new
            echo "$new" | usermod -l --stdin "$name"

出于某种原因,stdin 无法正常工作 :C 我得到下一个输出“usermod:无效的用户名'--stdin'”。

注意: 我以前使用 stdin 来获取新名称,并且它以这种方式工作得很好,所以我不知道出了什么问题。

我不知道任何 usermod 知道 --stdin ...试试这个:

echo "Give me the old username"
read name
echo "Give me the new username"
read new
usermod -l "$new" "$name"