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
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.
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.
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.
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
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.
$ 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
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
$
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
Tags linux user-accounts