Назад | Перейти на главную страницу

Сценарий оболочки для изменения uid для пользователя

У меня есть файл (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 | трепать