What is the good way to create a user with no password? By no password, I mean an account, that would be usable only by the root account using the su/sudo commands (like the "nobody" user used by Apache or Nginx).

I've read that putting a * in the password field of the /etc/shadow file works but I'd like to know if there is a way to do it with the useradd command.

I thought of doing:

useradd my_new_user -s /sbin/nologin -p '*'

but I'm not sure the useradd command can be used this way. I haven't found any reference about it.

  • "no password" means "don't have password" or "blank password"? – cuonglm May 17 '13 at 9:52

This works the way you described (of course you can specify whichever shell you'd like in place of /bin/bash):

root# useradd temp_test1 -s /bin/bash -p '*'
root# su temp_test1

After executing the above useradd command, the following entry is in my /etc/shadow file:


When using John Smith Optional's answer, the following will work:

root# useradd temp_test2 -s /sbin/nologin
root# su -s /bin/bash temp_test2

EDIT: I'd like to point out that the difference is that you cannot su into an account which has the shell specified as /sbin/nologin unless you specify a usable shell when issuing the su command:

root# useradd temp_test3 -s /sbin/nologin
root# su temp_test3
This account is currently not available.

(Tested in CentOS 6.4 -- should work in a variety of distros).

useradd my_new_user -s /sbin/nologin

If a password is not specified, one is not created/account disabled.

  • You can't su into a nologin account without specifying a shell with the su command. – s.co.tt May 17 '13 at 19:46
  • Sure you can, you just need to specify a different shell: su -s /bin/bash my_new_user – Ryan Apr 4 '20 at 13:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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