Você pode executar passwd --delete <username>
depois de criar o usuário com adduser
. Depois disso, você poderá fazer o login sem digitar uma senha.
No os X é possível ter usuários sem senhas. Se você os inspecionar com dscl
, sua senha será mostrada como *
. Isso é usado para usuários do sistema, como usuários de bancos de dados como mysql
, pgsql
etc. O que é bom nisso é que esses usuários não aparecem na tela de login e você não pode fazer login como eles sem sudo
etc.
Depois de deletar esse usuário tentando algumas coisas, eu quis recriá-lo, mas não consegui. Eu poderia conseguir um usuário com uma senha em branco e eu poderia definir a senha para *
. Mas nenhum teve o mesmo efeito acima, pois o usuário apareceu na minha tela de login.
Como você cria esse usuário?
Você pode executar passwd --delete <username>
depois de criar o usuário com adduser
. Depois disso, você poderá fazer o login sem digitar uma senha.
Um usuário em / etc / passwd com o diretório home de / dev / null e shell de / sbin / nologin, pode ser usado para sudo ing os comandos, mas na verdade não pode estar logado, por exemplo;
do meu / etc / passwd
tcpdump:x:104:441:added by portage for tcpdump:/dev/null:/sbin/nologin
Eu meio que lembro que isso vai fazer com que ele desapareça da tela de login do XDM também, mas eu não uso mais o XDM, então é um palpite: -)
Você pode usar usermod
, que desativará a senha usando um !
em vez de um *
.
usermod -L <username>
A partir da página man no usermod:
-L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectively disabling the password.
Usando dscl
daria
dscl . -passwd /Users/myuser ""
Eu não posso ter certeza sobre o OSX, mas no FreeBSD você pode usar:
pw add user mymuser -g mygroup -s /nonexistent -h -
o valor de -
passado para a opção -h
informa pw
para definir o campo de senha em master.passwd para *
, criando assim uma conta sem login. Configurar o shell não é estritamente necessário, mas evita uma checagem de shell no /etc/pw.conf.
Deixar o campo de senha vazio para o usuário no arquivo passwd
funcionará.
Se você está no Ubuntu, você pode trocar a senha para o usuário do Ubuntu em / etc / shadow. Confira este artigo:
No Linux eu uso:
sudo useradd -r -p \* -s /sbin/nologin -c "Comment My Daemon,,," -d "/var/uuu" myuser
A próxima alternativa deve ser mais de plataforma cruzada (se a opção -r
não estiver disponível):
sudo useradd -K UID_MIN=100 -K UID_MAX=499 -K GID_MIN=100 -K GID_MAX=499 -p \* -s /sbin/nologin -c "Comment My Daemon,,," -d "/var/uuu" myuser
Aqui:
A senha em / etc / shadow será colocada em *
. Sem -p \*
, será !
o shell será /sbin/nologin
(você também pode usar /bin/false
, mas acho que o /bin
pode ser montado muito tarde em alguns sistemas). Então o usuário não pode entrar
-d
configura o homedir do usuário
NOTA IMPORTANTE
Aqui -r
cria um usuário do sistema:
Esse sinalizador é usado para criar uma conta do sistema. Ou seja, um usuário com um UID
menor que o valor de UID_MIN
definido em /etc/login.defs e cuja senha não expira. Observe que useradd não criará um diretório inicial para esse usuário, independentemente da configuração padrão em /etc/login.defs . Você precisa especificar a opção -m
se quiser que um diretório pessoal para uma conta do sistema seja criada. Esta é uma opção adicionada pela Red Hat .
A opção -r
pode não estar presente no seu sistema. Então, para criar um usuário do sistema, isso não é mostrado na sua tela de login, eu acho que você pode usar a opção -K
. Algo como: -K UID_MIN=100 -K UID_MAX=499
. Você pode tentar a opção como:
-K UID_MAX=$(cat /etc/login.defs | grep ^UID_MIN | awk '{print $2}')
para determinar automaticamente você UID_MAX
, mas eu não testei no OS X. Você precisará usar SYS_UID_MAX
para UID_MIN
se não tiver comentário em /etc/login.defs
O mesmo é para GID_MAX
e GID_MIN
para o ID do grupo do sistema. (Veja GID_MIN
e se não comentou SYS_GID_MAX
em /etc/login.defs para usar como GID_MAX
)