Criar usuário a partir do script bash

0

Estou no processo de criar um script bash para automatizar a adição de um usuário. Minha senha sempre tem um padrão, então eu estou configurando isso para uma variável então ... (é aqui que estou preso - criptografando). Eu encontrei este post mas que fala sobre -stdin que eu não quero usar. Além disso, me pedem a senha se eu a omitir de qualquer maneira. Então, como posso criptografar a senha do meu nome de usuário automaticamente?

Meu script

#!/bin/bash
if [ $# -ne 1 ]
then
  echo "Usage: $0 <user>"
else
  p=${1%.*}
  p=$(echo $p | tr -d 'aeiou' | openssl passwd) $1
  useradd -p $p $1
fi

EDIT: mkpasswd no CentOS parece não funcionar como o mencionado no post que eu criei link.

EDIT2: a versão do bash é 4.1.2(1)-release , se isso for importante.

    
por Tolga Ozses 14.05.2015 / 09:31

2 respostas

0

Acabei usando isso, inspirado em este post

#!/bin/bash
if [ $# -ne 1 ]
then
  echo "Usage: $0 <user>"
else
  u=${2%.*}
  u=${u//[aeiou]}
  echo "$2:$u" > .tmp
  useradd $2
  < .tmp chpasswd
fi
    
por 14.05.2015 / 11:00
1

Você pode usar useradd e chpasswd para automatizar a criação de usuários. por exemplo,

useradd -c "Bob Smith" -m bob
echo "bob:mypassword" | chpasswd

Se você não quiser que a senha em texto sem formatação apareça no script, use o sinalizador --encrypted :

echo "bob:encrypted_mypassword" | chpasswd --encrypted
    
por 14.05.2015 / 10:24