2009-12-02 00:47:25 +0000 2009-12-02 00:47:25 +0000
138
138

Como posso criar um utilizador sem login?

Gostaria de criar um utilizador e um grupo chamado subversion num sistema RHEL 5. Eu olhei para a página de manual do useradd e acho que o comando seria apenas…

useradd subversion

No entanto, não sei bem como evitar criar uma barragem doméstica. Também não quero que seja um utilizador que possa entrar no sistema.

O principal objectivo é apenas fornecer um proprietário para um repositório SVN.

Respostas (8)

229
229
229
2012-12-06 20:10:20 +0000

Pode usar o seguinte comando:

useradd -r subversion

Para mais informações, verifique páginas de manual com este comando:

man useradd

Encontrará nesta documentação a seguinte bandeira que pode ser usada para o seu propósito.

-r, --system create a system account

A bandeira -r irá criar um utilizador do sistema - um utilizador que não tem uma palavra-passe, uma senha de casa e que não consegue fazer login.

81
81
81
2009-12-02 00:58:07 +0000

Pode usar a chave -M (certifique-se de que é um capital) para garantir que não será criado nenhum directório doméstico:

useradd -M subversion

e depois bloquear a conta para impedir o login:

usermod -L subversion
22
22
22
2015-03-01 20:04:05 +0000

Outra solução para criar um utilizador do sistema, usando adduser :

adduser --system --no-create-home --group yourusername

Pode remover --group se não precisar de agrupar o seu nome de utilizador, e --no-create-home se precisar de uma casa para este utilizador.

Como mencionado por py4on nos comentários, em alguns sistemas pode ser necessário usar a opção --disabled-login para, bem, desactivar o login para este utilizador. Parece ser o comportamento padrão no Debian, no entanto.

Cuidado que o ID numérico do usuário será de uma conta de sistema. Pode corrigir o uid usando a opção --uid, no entanto.

Finalmente, note que em alguns sistemas (e.g. Fedora) adduser é um link simbólico para useradd, neste caso esta resposta não é válida.

17
17
17
2016-05-17 06:15:03 +0000

A resposta mais limpa à pergunta original é correr o comando:

adduser subversion --shell=/bin/false

E se não quiser o directório home:

adduser subversion --shell=/bin/false --no-create-home

ou, se quiser um utilizador do sistema ainda mais bloqueado (Normalmente isto não criará um directório home - foi reportado que ainda criará um directório home em linux mint como por comentário abaixo)

adduser subversion --system --group

Todos estes comandos irão criar um grupo com o mesmo nome do utilizador

13
13
13
2017-03-07 14:04:28 +0000

A forma mais segura de o fazer seria usar adduser assim:

$ adduser -r -s /bin/nologin subversion

NOTE: Certifique-se de que inclui -s /sbin/nologin para desactivar qualquer escudo de login de ser disponibilizado para a conta.

Confirmação de configuração

$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::

No entanto não existe directório:

$ ll /home | grep subversion
$

Confirmação de utilização da conta:

$ sudo -u subversion whoami
subversion

$ sudo -u subversion date
Tue Mar 7 08:58:57 EST 2017

Remoção

Se precisar de remover esta conta:

$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$

e confirmar:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$
1
1
1
2016-09-06 15:06:22 +0000

Numa máquina CentOS 7 pode usar os seguintes comandos:

  • se o utilizador não existir:

  • se quiser modificar um utilizador existente:

0
0
0
2019-09-02 00:38:41 +0000

Em Debian, você pode criar um utilizador do sistema (sem directório home) e shell de login:

useradd --system --shell=/usr/sbin/nologin <username>

Se o seu programa nologin está em /sbin/nologin, por favor mude de acordo.

0
0
0
2019-06-08 18:45:03 +0000

Comece por gerar uma senha encriptada para o utilizador com um máximo de 8 caracteres fazendo:

openssl passwd -crypt new_password_less_than_eight_chars_long

Depois faça:

useradd -m -g groupname -G otherGroupsSeperatedByComma -p encryptedPassword username