Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to create a new user to run a service on the system but don't want to have /home and other configuration files for it. Like there is a user for postgres but it doesn't have any /home directory.

share|improve this question
    
I just found this howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server – Owais Lone Mar 7 '11 at 10:02
up vote 46 down vote accepted

By default the command useradd doesn't create home directories, but for a daemon I recommend you to use the system option and change the shell to a non-existent one so no one can login with said account (in ssh for example):

sudo useradd -r -s /bin/false USERNAME

You can see all the options with man useradd and man groupadd if you want to create a group for the user too.

share|improve this answer
2  
useradd -r creates a system user, not only a user with no homedir. – fromnaboo Aug 12 '12 at 15:23
    
notice, useradd -r also creates corresponding groups. – Sandro Dzneladze Mar 31 '14 at 11:00
    
I believe the best practice is using /sbin/nologin as the login shell, although, using /bin/false wouldn't make any differences. – Meow Oct 12 '15 at 14:49

Try adduser --system --no-create-home USERNAME or simply have a look at the man adduser which claims to be a "friendlier front end to the low level tools like useradd...".

share|improve this answer

I needed something similar - a new user without login privileges and tied to a system service. However, the answer by Clausi creates a user with the primary group as 'nogroup', which wasn't really desirable.

adduser --system --no-create-home --group USERNAME creates a system group with the same name as the user and associates it with the user as the primary group. This can then be verified by using the groups USERNAME or the id USERNAME command.

share|improve this answer

try this command:

sudo useradd vivek

This will create a user without creating your home folder at /home/vivek

share|improve this answer
    
No, as long as you are logged in with this account, the /home/vivek will be automatically created. – Meow Oct 12 '15 at 14:41

To add user without home directory the commands are,

useradd -M username

or

useradd --no-create-home username

or

adduser -M username

or

adduser --no-create-home username
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.