How-to: password-protect a file/directory in Apache using htaccess - Printable Version +- Linux-Noob Forums (https://www.linux-noob.com/forums) +-- Forum: Linux Server Administration (https://www.linux-noob.com/forums/forum-8.html) +--- Forum: LAMP (https://www.linux-noob.com/forums/forum-83.html) +--- Thread: How-to: password-protect a file/directory in Apache using htaccess (/thread-3392.html) |
How-to: password-protect a file/directory in Apache using htaccess - anyweb - 2004-05-11 this is a quick howto for setting up protected directories on your newly installed apache webserver (thanks to michael on IRC for help with this). first of all you'll need to decide what directory you want to protect, in the example below we are going to protect a directory called /usr/local/apache/htdocs/private you can also assume in this example that we are serving webpages from /usr/local/apache/htdocs/ also to note: http://httpd.apache.org/docs/mod/mod_access.html mod_acess is also required for using .htaccess e.g. Code: LoadModule access_module /usr/lib/apache/1.3/mod_access.so ok.. where do we start ? STEP one: edit your httpd.conf file first of all you need to edit your httpd.conf file and define a few things, notably you want to tell apache which directory to protect if you compiled apache as in the example here then your httpd.conf file will be located in /usr/local/apache/conf/httpd.conf so using your favorite text editor lets start editing the file and add the following (which you should change for your path) Code: <Directory /usr/local/apache/htdocs/private/> also make sure your httpd.conf file has the following in it Code: AccessFileName .htaccess ok done, save your file. STEP two: create .htaccess file and put it in the chosen directory Now we need to create a new file and paste the following info into it the file is going to be called .htaccess, please note the . infront of it, that is because it is a hidden file. copy/paste the following text into this new file and Please note: AuthUserFile must include an absolute path so "AuthUserFile .htpasswd" doesnt work if you have .htpasswd in your current directory Code: AuthName "Authorization required" please note that the path /var/www/.htpasswd can change according to where you want it to be, and that at this point, the file .htpasswd does not yet exist. ok, save the file and test to see that it exists by doing a ls with some switches to see hidden files. Code: [root@www private]# ls Now you can see the hidden .htaccess file and that it exists. STEP three: create a 'apache' virtual user/password file called .htpasswd Ok now we need to actually create a 'virtual' user with a password, this user/pass is not a system user it is only used by apache to give access to the specified directory. To create the users lets change directory to where we want the .htpasswd file stored, in the example above its in /var/www/ Code: cd /var/www Now we are there, lets make the file, to do this we use a program called htpasswd. Code: htpasswd -c /var/www/.htpasswd anyweb It will prompt you for a password, enter it and then confirm it. Once done confirm the file is present (it is hidden remember) Code: [root@www www]# ls -alxhs good its there, the file will now contain the username you specified (in this case anyweb) and an encrypted password that looks something like this Code: anyweb:ARmbxDd.dE STEP four: edit httpd.conf, add the path to the dir to protect, save, restart apache and test Edit your httpd.conf file (usually in /usr/local/apache/conf if you compiled it) find a section that reads Quote:## Controls who can get stuff from this server. and change it so that it includes the path to the directories you want password protected (and which you also copied the .htacess file into the root of) Code: # save httpd.conf. Let's restart apache so that it can read the newly edited httpd.conf file to do so issue the following as root Code: /usr/local/apache/bin/apachectl stop That's it you are done, now test it by browsing in Mozilla to the 'protected' directory, you should be prompted for a username/password to access it ! How-to: password-protect a file/directory in Apache using htaccess - seeno - 2004-07-07 Great howto anyweb :) I followed this tutorial and used: httpd-2.0.50 mysql-4.0.20 php-4.3.7 ------------------------------ I don't know where I should post this but here.. The problem is when I did the fresh install I only have the libphp4.so module on the modules/ directory [img]<___base_url___>/uploads/emoticons/default_dry.png[/img] I need the mod_access.so module, I did a few searches and this is what I found, Code: /usr/local/src/httpd-2.0.50/modules/aaa/mod_access.c How-to: password-protect a file/directory in Apache using htaccess - grep420 - 2004-07-30 edit the .htaccess file and add <FilesMatch filename.html> AuthName "username" AuthType Basic AuthUserFile /home/userdir/.htpasswd require valid-user </FilesMatch> How-to: password-protect a file/directory in Apache using htaccess - anyweb - 2004-07-31 hmm i tried this and nothing happened. i wonder what i/m doing wrong see below Code: <FilesMatch pics2.html> .htpasswd was previously created so no need to recreate it (i guess) also.. i restarted apache still the same, doesnt prompt for password cheers anyweb How-to: password-protect a file/directory in Apache using htaccess - grep420 - 2004-11-04 AuthName grep420.net AuthUserFile /home/grep420/www/htpasswd AuthGroupFile /dev/null AuthType Basic require valid-user This is an example of a .htaccess file. This will require a password from anyone trying to access the directory this file is located in via the web. When you create your own .htaccess file the AuthName section can be anything you want for the title. AuthUserFile needs to point to the file you are storing your user/password information. You can generate a user/password combination with the htpasswd command. AuthType Basic is probably what you want. The most important part is require valid-user, this is basicly telling apache to ask for a user/password for access. <example> shell#> htpasswd .htpasswd linux-noob New password: Re-type new password: Updating password for user linux-noob shell#> cat .htpasswd linux-noob:OaRnx68rKLt3E </example> Now by placing your .htaccess file into a web directory it will prompt for a user and a password for access. Make sure you keep the htpasswd file in a secure area. How-to: password-protect a file/directory in Apache using htaccess - dallas - 2004-11-27 Hi all, Just a note to cover a tricky issue some people might have.. I followed the above directions on my fc2, apache2 server and nothing happened.. So if you try this too and have a simmilar issue, try adding an AllowOverride AuthConfig section to your site... for example my virtualhost below: <VirtualHost 202.168.47.66> DocumentRoot "/var/www/foo" ServerName www.foo.com.au <Directory "/var/www/foo"> allow from all Options +Indexes AllowOverride AuthConfig </Directory> </VirtualHost> the .htaccess is located in the /var/www/foo directory and the .htpasswd is one directory higher. Rembember to check your error_log for apache! da!!as How-to: password-protect a file/directory in Apache using htaccess - xDamox - 2005-01-01 to add better security you can use three types of encryption SHA encryption can be done by: Code: /usr/bin/htpasswd -cs .htpasswd linux-noob MD5 Sum one way hash can be done by: Code: /usr/bin/htpasswd -cm .htpasswd linux-noob Crypt encrtion can be done by doing: Code: /usr/bin/htpasswd -cd .htpasswd linux-noob How-to: password-protect a file/directory in Apache using htaccess - qstraza - 2006-05-02 is there any way to set how many times user/pass can be misstyped? |