Como devo adicionar usuários de forma não interativa?

6

Eu tenho um conjunto de usuários que preciso adicionar a um novo sistema como parte de um script BASH que prepara meu servidor. Como posso adicionar o usuário de maneira não interativa, criar seu diretório pessoal, definir o grupo e inserir uma senha padrão?

Por exemplo, se eu precisasse adicionar os seguintes usuários, como eu faria isso?

user: node
password: spoon
group: ultraMegaPermissions

user:serve
password: spoot
group: sortaNotMega

user:watcher
password: spoogle
group: notMega
    
por Prospero 19.09.2011 / 16:39

4 respostas

6

É uma questão antiga, mas outros curiosos podem considerar o comando 'newusers'. Isso está presente tanto no sistema RHEL5.5 quanto no sistema Ubuntu 12.04 que eu uso, então acho que ele estará disponível nos repositórios para a maioria das distribuições.

De "man newusers"

The newusers command reads a file of user name and clear-text password pairs and uses this information to update a group of existing users or to create new users. Each line is in the same format as the standard password file (see passwd(5)) with the exceptions explained below

    
por 02.02.2013 / 03:28
7

Use useradd no Linux, pelo menos.

Use crypt(3) para gerar uma senha criptografada e faça o seguinte para cada um:

useradd -m -g [group] -p [crypt output] [user]

-m cria um diretório inicial. -g define o grupo de login inicial do usuário. -p define a senha criptografada, conforme retornado por crypt(3) (você deve observar que essa opção pode ser inadequada, pois a senha criptografada ficará visível para os usuários que listam os processos quando o usuário está sendo criado).

Você provavelmente desejará usar outras opções também (a um palpite, pelo menos, -s ), leia man 8 useradd para essas opções.

    
por 19.09.2011 / 16:56
0

Se você precisar inserir manualmente a senha do usuário:

echo -n "Enter $MY_USER password: "
read -sa MY_PASS
echo ${MY_USER}:${MY_PASS}::::/home/${MY_USER}:${DEFAULT_SHELL} | newusers

E se você precisar dele totalmente não interativo, apenas execute o último comando com a senha de texto simples ($ MY_PASS), o que normalmente não é uma boa ideia

    
por 03.10.2013 / 06:16
-1

No caso de o comando newuser não existir no servidor.

Você pode usar a ajuda do comando passwd.

 echo "new_passwd" | passwd  --stdin new_user
    
por 03.02.2015 / 13:39

Tags