How can I create a non-login user?
I'd like to create a user and a group both called subversion
on a RHEL 5 system. I looked at the man page for useradd
and I guess the command would be just be...
useradd subversion
However, not sure how to avoid creating a home dir. Also, I don't want it to be a user that can log in to the system.
The main purpose is just to provide an owner for a SVN repository.
You can use the -M
switch (make sure it's a capital) to ensure no home directory will be created:
useradd -M subversion
then lock the account to prevent logging in:
usermod -L subversion
You can use the following command:
useradd -r subversion
For more info, check manual pages with this command:
man useradd
You will find in this documentation the following flag that can be used for your purpose.
-r, --system create a system account
The -r
flag will create a system user - one which does not have a password, a home dir and is unable to login.
Another solution to create a system user, using adduser
:
adduser --system --no-create-home --group yourusername
You can remove --group
if you don't need group yourusername, and --no-create-home
if you do need a home for this user.
As mentionned by py4on in comments, on some systems one may need to use the --disabled-login
option in order to, well, disable login for this user. It seems to be the default behaviour under Debian, though.
Beware that the numeric ID of the user will be of a system account. You can fix the uid using the --uid
option, though.
Finally, note that on some systems (e.g. Fedora) adduser
is a symlink to useradd
, in which case this answer is not valid.