У меня есть файл (users_uid) с пользователями, а uid - это два параметра, как указано ниже:
assds 611
dsdsd 612
xyzx 613
rerer 614
Эти пользователи существуют в машине. Я хочу изменить uid каждого пользователя на это значение, заданное правом на имя пользователя. Я знаю, что могу изменить uid, используя usermod -u <uid> <user>
. Но я не знаю, как прочитать два значения в файле и поместить их как 2 параметра в для цикл с командой usermod.
Принятый ответ может привести к появлению вредоносного или случайного содержимого в файле данных. Вот правильный способ делать то, что вы хотите, без появления 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
awk '{print "usermod -u" $ 2 "" $ 1}' users_uid | трепать