用于更改用户 uid 的 Shell 脚本

用于更改用户 uid 的 Shell 脚本

我有一个文件(users_uid),其中用户和uid是两个参数,如下所示:

    assds  611
    dsdsd  612
    xyzx   613
    rerer  614

这些用户存在于机器中。我想将每个用户的 uid 更改为用户名赋予的值。我知道我可以使用 修改 uid usermod -u <uid> <user>。但我不知道如何读取文件中的两个值并将它们作为 2 个参数放在为了使用 usermod 命令循环。

答案1

awk'{print“usermod -u“$2”“$1}'users_uid|bash

答案2

接受的答案存在执行数据文件中的恶意或意外内容的风险。这是执行您想要的操作的正确方法,无需生成额外awk的副本,bash而且可以避免我提到的风险。

while read -r user uid
do
    usermod -u "$user" "$uid"
done < users_uid

作为一行代码:

while read -r user uid; do usermod -u "$user" "$uid"; done < users_uid

相关内容