Analisando através de um arquivo CSV para adicionar usuários

3

Estou tendo problemas ao analisar um arquivo CSV para adicionar usuários.

Eu escrevi um pequeno script para adicionar uma lista de 1000 usuários:

export IFS=","

cat users.csv | while read a b c d e f g; do useradd -d -u $a -U $d ; done

O arquivo CSV é formatado como:

ps2946,male,Phil Harris,Recording,6508 Hollywood Blvd,Nov 16 1950,760 901 3537
mc3225,male,Mel Blanc,Radio,6385 Hollywood Blvd.,Oct 1 1983,626 647 5560
fn1029,male,Franklin Pangborn,Motion pictures,1500 Vine Street,Mar 10 1911,858 497 6108
we9602,undefined,Webb Pierce,Recording,1600 Vine Street,Sep 3 1988,559 595 6063

No entanto, ao executar o script, ele repete todo o arquivo repetindo:

useradd: invalid home directory '-u'

Eu usei o IFS de exportação para separar as palavras por vírgula e usá-las como parâmetros para o comando useradd.

Eu li o manual e usei o valor para o diretório inicial, mas sinto que todo o meu script está desativado.

Alguém pode me ajudar a formatar corretamente um script para adicionar usuários de um arquivo CSV?

Para referência, usei este encadeamento como base: link

    
por SaintLaurent 26.05.2017 / 21:37

1 resposta

2

O erro é porque você está chamando useradd com a opção -d , que espera que a próxima palavra seja o caminho do diretório inicial ou o nome do diretório no diretório inicial padrão (não -u ).

Como primeira sugestão, tente:

cat users.csv | while read a b c d e f g; do useradd -d "$a" -U "$d" ; done
    
por 26.05.2017 / 21:42