Como posso criar um usuário que não seja de login?

107

Gostaria de criar um usuário e um grupo chamados subversion em um sistema RHEL 5. Eu olhei para a página de manual para useradd e acho que o comando seria apenas ...

useradd subversion

No entanto, não sabe como evitar a criação de um diretório inicial. Além disso, não quero que seja um usuário que possa efetuar login no sistema.

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

    
por Ethan 02.12.2009 / 01:47

6 respostas

59

Você pode usar a opção -M (verifique se é um capital) para garantir que nenhum diretório pessoal seja criado:

useradd -M subversion

depois bloqueie a conta para impedir o login:

usermod -L subversion
    
por 02.12.2009 / 01:58
180

useradd -r subversion

por man useradd :

-r, --system create a system account

O sinalizador -r criará um usuário do sistema - um que não tenha uma senha, um diretório inicial e seja incapaz de fazer o login.

    
por 06.12.2012 / 21:10
16

Outra solução para criar um usuário do sistema, usando adduser :

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

Você pode remover --group se não precisar do seu nome de usuário e --no-create-home se precisar de um local para esse usuário.

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

Tenha em atenção que o ID numérico do utilizador será de uma conta do sistema. Você pode corrigir o uid usando a opção --uid .

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

    
por 01.03.2015 / 21:04
10

A resposta mais clara para a pergunta original é executar o comando:

adduser subversion --shell=/bin/false

E se você não quiser o diretório inicial:

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

ou, se você quiser um usuário do sistema ainda mais bloqueado (também não criará um diretório pessoal)

adduser subversion --system --group

Todos esses comandos criarão um grupo com o mesmo nome do usuário

    
por 17.05.2016 / 08:15
8

A forma mais segura de fazer isso seria usar adduser da seguinte forma:

$ adduser -r -s /bin/nologin subversion

OBSERVAÇÃO: inclua -s /sbin/nologin para desativar qualquer shell de login disponível para a conta.

Confirmação da 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 há diretório:

$ ll /home | grep subversion
$

Confirme se a conta é utilizável de outra forma:

$ sudo -u subversion whoami
subversion

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

Remoção

Se você precisar 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 confirme:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$
    
por 07.03.2017 / 15:04
1

Em uma máquina do CentOS 7

  • se o usuário não existir:% useradd testuser --shell=/sbin/nologin

  • se você quiser modificar um usuário existente:
    usermod testuser --shell=/sbin/nologin

por 06.09.2016 / 17:06