Adding a user on .htpasswd
Asked Answered
M

2

122

I am using .htpasswd to password protect certain directory on my server. However, I noticed that everytime I do this sudo htpasswd -c /etc/apache2/.htpasswd newuser my current contents of .htpasswd will be overwritten. Every directory of my site has their own user on .htpasswd.

How can I not overwrite instead add a new user on my .htpasswd?

Metatherian answered 30/1, 2013 at 2:1 Comment(0)
D
202

Exact same thing, just omit the -c option. Apache's docs on it here.

htpasswd /etc/apache2/.htpasswd newuser

Also, htpasswd typically isn't run as root. It's typically owned by either the web server, or the owner of the files being served. If you're using root to edit it instead of logging in as one of those users, that's acceptable (I suppose), but you'll want to be careful to make sure you don't accidentally create a file as root (and thus have root own it and no one else be able to edit it).

Duwalt answered 30/1, 2013 at 2:3 Comment(4)
Good gracious! Never thought that switch is the answer, pardon my innocence.Metatherian
However, it won't let me modify the existing .htpasswd it insists the use of -c switch.Metatherian
@Metatherian What's the error? htpasswd /path/to/file username is perfectly valid (syntactically anyway) and even the first example on the Apache docs.Duwalt
My bad. I am trying to do htpasswd -c /etc/apache2/.htpasswd newuser in my CentOS server! Sorry, didn't notice I'm at the wrong window. Will accept your answer in 5 mins. Thanks!Metatherian
C
30

FWIW, htpasswd -n username will output the result directly to stdout, and avoid touching files altogether.

Calcify answered 19/2, 2015 at 19:53 Comment(1)
Then just append the user:hash to a new line in the old file. This option is also valid for other cases, such as generating from one system to another without apache installed, but which can use apache's htpasswd file (such as lighttpd, for example)Permissible

© 2022 - 2024 — McMap. All rights reserved.