Execute adduser não interativamente

161

Gostaria de usar o comando adduser para adicionar um usuário (com senha desativada) por meio de um script de shell.

Por padrão, adduser solicita vários valores (por exemplo, Nome completo). Existe alguma maneira de enviar esses valores via linha de comando? Ou eu precisarei de useradd ?

    
por Lorin Hochstein 09.01.2012 / 14:54

2 respostas

217

Use a opção --gecos para pular a parte interativa chfn .

adduser --disabled-password --gecos "" username

Está tudo na página man. Não é a formulação mais óbvia que se faz.

--gecos GECOS
          Set  the  gecos field for the new entry generated.  adduser will
          not ask for finger information if this option is given.

O campo GECOS é uma lista separada por vírgulas como tal: Full name,Room number,Work phone,Home phone , apesar de a página man mencionar finger information Detalhes - Wikipedia

Espero que isso ajude você.

    
por Zoke 09.01.2012 / 15:18
28

useradd também pode adicionar usuários e não parece ter nenhuma forma de solicitação embutida.

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m , --create-home : crie o diretório inicial do usuário
  • -p , --password : especifique a senha do usuário; pule para acessá-lo desativado
  • -s , --shell : shell padrão para o usuário de logon

    Em branco usará o shell de login padrão especificado pela variável SHELL em /etc/default/useradd

  • Substitua <user> pelo nome de login
  • Substitua <encryptedPassword> pela senha criptografada

Gerando uma senha com hash:

Existem muitas implementações de crypt3 que podem gerar um hash senha. A coisa toda é sua senha com hash.

Baseado em Sha-512

O formato de saída resultante: o mecanismo de hash ( $6 para sha-512), o sal aleatório (os oito bytes após o segundo sinal de dólar $ASDF1234 ), o restante é a carga útil.

  • mkpasswd mkpasswd -m sha-512

    ( mkpasswd é fornecido pelo pacote whois )

baseado em DES:

O formato de saída resultante: primeiro 2 bytes é o seu sal, o restante é a carga útil. A coisa toda é sua senha com hash.

  • mkpasswd: mkpasswd (fornecido por whois package)
  • openssl: openssl passwd -crypt
  • perl: perl -e "print crypt('password', 'sa');"

    /!\ Escolha seu próprio sal aleatório de dois bytes em vez de 'sa'

  • python: python -c 'import crypt; print crypt.crypt("password", "Fx")'

    /!\ Escolha seu próprio sal aleatório de dois bytes em vez de "Fx"

por ThorSummoner 31.08.2015 / 20:48