Como adicionar um usuário sem / home?

79

Desejo criar um novo usuário para executar um serviço no sistema, mas não quero ter /homee outros arquivos de configuração para ele. Como se houvesse um usuário para o postgres, mas ele não possui nenhum /homediretório.

Owais Lone
fonte

Respostas:

105

Por padrão, o comando useradd não cria diretórios pessoais, mas para um daemon, recomendo que você use a opção system e altere o shell para um inexistente para que ninguém possa fazer login com a conta (no ssh, por exemplo):

sudo useradd -r -s /bin/false USERNAME

Você pode ver todas as opções com man useradde man groupaddse também deseja criar um grupo para o usuário.

sergio91pt
fonte
4
useradd -r cria um usuário do sistema, não apenas um usuário sem homedir.
fromnaboo
2
observe, useradd -r também cria grupos correspondentes.
9
Acredito que a melhor prática é usar /sbin/nologincomo shell de logon, embora o uso /bin/falsenão faça nenhuma diferença.
Meow
51

Tente adduser --system --no-create-home USERNAMEou simplesmente dê uma olhada no man adduserque afirma ser um " front end mais amigável para ferramentas de baixo nível como useradd ... ".

Clausi
fonte
4
Na verdade, eu não percebi que isso é adduservs. useradd, e executar o comando useraddcom essas opções não produziu nenhum erro, mas criei a conta com shell /bin/bash. "Cuidado com o comprador".
Isapir
14

Eu precisava de algo semelhante - um novo usuário sem privilégios de login e vinculado a um serviço do sistema. No entanto, a resposta de Clausi cria um usuário com o grupo principal como 'nogroup', o que não era realmente desejável.

adduser --system --no-create-home --group USERNAMEcria um grupo de sistemas com o mesmo nome que o usuário e o associa ao usuário como o grupo principal. Isso pode ser verificado usando groups USERNAMEo id USERNAMEcomando ou

daoperator
fonte
2

Para adicionar usuário sem diretório inicial, os comandos são:

useradd -M username

ou

useradd --no-create-home username

ou

adduser -M username

ou

adduser --no-create-home username
user477778
fonte
1

tente este comando:

sudo useradd vivek

Isso criará um usuário sem criar sua pasta pessoal em /home/vivek

Vivekananda T
fonte
1
Não, desde que você esteja logado com esta conta, /home/vivekela será criada automaticamente.
Meow