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
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.
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
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
Tags useradd shell-script