Script de shell para alterar o uid para o usuário

1

Eu tenho um arquivo (users_uid) com usuários e uid são dois parâmetros conforme abaixo:

    assds  611
    dsdsd  612
    xyzx   613
    rerer  614

Esses usuários existem na máquina. Eu quero mudar o uid de cada usuário para esse valor dado certo para o nome de usuário. Eu sei que posso modificar o uid usando usermod -u <uid> <user> . Mas eu não sei como ler os dois valores no arquivo e colocá-los como os 2 parâmetros em um loop para com o comando usermod.

    
por nitins 08.12.2011 / 13:40

2 respostas

4

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

    
por 08.12.2011 / 13:48
4

A resposta aceita corre o risco de executar conteúdo malicioso ou acidental no arquivo de dados. Aqui está a maneira correta de fazer o que você quer, sem gerar awk e uma cópia adicional de bash , além de estar a salvo do risco que mencionei.

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

Como um verso:

while read -r user uid; do usermod -u "$user" "$uid"; done < users_uid
    
por 15.07.2013 / 20:34