Questão Execute adduser não interativamente


Eu gostaria de usar o adduser comando para adicionar um usuário (com senha desativada) através 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 useradd em vez de?


159
2018-01-09 13:54


origem


dê uma olhada na página man do adduser. Isso te ajudará. - Zoke
@Zoke Eu não consegui encontrar a informação que estava procurando na página man. - Lorin Hochstein


Respostas:


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

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

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

--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 que a página man menions finger information  Detalhes - Wikipedia

Espero que isso ajude você.


214
2018-01-09 14:18



Sim, posso ver como perdi isso. "gecos" não é uma descrição óbvia - Lorin Hochstein
+1 --gecos é muito confuso. - Trevor Sullivan


useradd Também é possível adicionar usuários e não parece ter nenhuma forma de solicitação incorporada.

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

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

  • Substituto <user> com o nome de login
  • Substituto <encryptedPassword> com o criptografado senha

Gerando uma senha com hash:

tem muito de implementações crypt3 que podem gerar uma senha com hash. A coisa toda é sua senha 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 whois pacote)

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 hash.

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

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

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

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


28
2017-08-31 18:48



As opções que você mencionou não existem para adduser na minha (recente) versão do Ubuntu. - ᴠɪɴᴄᴇɴᴛ
@ ᴠɪɴᴄᴇɴᴛ adduser é distinto de useraddConfuso, eu sei. - ThorSummoner
Oops, de fato, perdeu o fato de você usar quase o mesmo nome ... não existe um BDFL que proteja o namespace da linha de comando? p - ᴠɪɴᴄᴇɴᴛ
@ mum007 Este é apenas um conselho geral, tente adicionar -v ou -vv ou -vvv aos seus comandos ssh para ver o que está errado e procure suas mensagens de erro aqui no SO ou no Google. - ThorSummoner
@KovacsAkos tente isto: sudo sed -i"" -e "s/PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_config e sudo service ssh restart - JSBach