Adicionando usuários do arquivo de texto [duplicado]

-1

Estou tentando adicionar vários usuários de um arquivo de texto e depois para um grupo, mas continuo recebendo este erro:

'seradd: invalid user name 'srogers

Meu script atual é:

for i in $(cat users.txt)
do
  echo $i
  sudo useradd -m -s /bin/bash -G interns $i
done

O que estou fazendo de errado?

    
por DJAY 28.02.2016 / 02:38

1 resposta

3

Você não nos fornece insights sobre sua tarefa específica e sobre o conteúdo do arquivo users.txt , mas eu poderia dar algumas recomendações que eliminarão problemas simples.

Primeiro

Sempre envolva todas as variáveis com aspas duplas " nos scripts bash. Esse truque simples ajuda a evitar muitos problemas de script. No seu caso particular, substitua todos os $i por "$i" .

Segundo

Sempre adicione o traço duplo -- no final da linha de comando para indicar as opções de fim de comando. Isso ajuda a evitar problemas quando o parâmetro posicional tiver - como parte de sua sequência. Finalmente, a linha com o comando useradd será semelhante a:

$ sudo useradd -m -s /bin/bash -G interns -- "$i"

Terceiro

Considere que os nomes de usuários devem satisfazer as restrições. Depende de uma determinada distribuição Linux, aqui está uma citação de man useradd do Ubuntu 14.04

   It is usually recommended to only use usernames that begin with a lower
   case letter or an underscore, followed by lower case letters, digits,
   underscores, or dashes. They can end with a dollar sign. In regular
   expression terms: [a-z_][a-z0-9_-]*[$]?

   On Debian, the only constraints are that usernames must neither start
   with a dash ('-') nor plus ('+') nor tilde ('~') nor contain a colon
   (':'), a comma (','), or a whitespace (space: ' ', end of line: '\n',
   tabulation: '\t', etc.). Note that using a slash ('/') may break the
   default algorithm for the definition of the user's home directory.

   Usernames may only be up to 32 characters long.

E, finalmente, leia este para estar ciente de outros erros comuns.

Veja também newusers utility, pode ser mais fácil se você tiver toneladas de usuários para criar.

    
por c0rp 28.02.2016 / 04:03