Aqui está o código de script que estou usando agora:
getent group $MYGROUP
if [ $? -ne 0 ] ; then
sudo su -c "groupadd $MYGROUP"
fi
sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"
Essa abordagem funciona bem no openSuse. Mas há vários problemas com a conta de usuário que ele cria no Ubuntu, então estou procurando ajuda aqui.
- o prompt do terminal não está definido (
echo $PS1
não retorna nada) - as teclas de seta e tecla tab não funcionam corretamente no terminal
- a senha parece não funcionar (embora ainda não esteja claro exatamente qual é esse problema)
- os direitos / etc / sudoers definidos para esse novo usuário não são respeitados
Se, em vez disso, eu criar o usuário manualmente com adduser
(em vez de useradd), não tenho esses problemas no Ubuntu. Mas não posso usar adduser
no openSuse (afaik). Portanto, preciso de um script ou método não exclusivo do Debian para adicionar contas de usuário por meio do meu script bash que funcione no Ubuntu (e não pare de trabalhar em outras distros).
Finalmente, eu gostaria de entender as diferenças entre adduser
e useradd
. Por exemplo, quero saber qual diretório do esqueleto é usado, adduser
pois esse pode ser o motivo pelo qual useradd
não está funcionando conforme o esperado (porque aceitei o padrão).
obrigado
sudo su -c "cmd arg1 arg2"
é equivalente a sudo cmd arg1 arg2
.
sudo su -c "cmd arg1 arg2"
para que funcione em qualquer lugar em que eu precise.
adduser
é um script perl com mais de 1000 linhas, portanto, para as diferenças, você pode dar uma olhada no script.
adduser
mas não sei perl. Portanto, essa não é uma boa abordagem para mim.
man useradd
): useradd é um utilitário de baixo nível para adicionar usuários. No Debian, os administradores geralmente devem usar o adduser (8).