Hay una forma bastante sencilla de asignar contraseñas a los directorios accedidos via apache desde un navegador web, para ello es necesario conocer 2 ficheros claves, el primero y el principal es llamado .htaccess (con punto inicial) y es el que le indica a apache que hay restricciones o funciones especiales en el directorio que lo contiene. El segundo es llamado .htpasswd (con punto) que es el que contiene los usuarios autorizados a ver el contenido del directorio con sus respectivas contraseñas.
Ejemplo:
Asumiento que apache ingresa por defecto al directorio /var/www, vamos a crear un directorio llamado restringido dentro de /var/www , la idea es que cuando alguien llege al servidor y quiera ver el contenido del directorio restringido, apache le solicite un usuario y contraseña antes de permitirle ver lo que hay dentro.
Instrucciones:
cd /var/www/restringido
touch .htaccess
Conun editor de textos agrege lo siguiente en .htaccess SIN LAS COMILLAS ” “
AthUserFile /var/www/restringido/.htpasswd
AuthGroupFile /dev/null
AuthName "Directorio Restringido"
AuthType Basic"<"Limit GET">"
require valid-user
"<"/Limit">"
Como se puede observar se ha especificado la ruta en donde se encuentran los usuarios autorizados ( /var/www/restringido/.htpasswd)
htpasswd -c [ruta del fichero .htpasswd] [usuario]
Como el fichero no existe el parametro -c lo crea, si el fichero ya existiese, borrará todo el contenido del fichero antiguo.
Para el primer usuario
htpasswd -c /var/www/restringido/.htpasswd rodrigo
Para agregar un nuevo usuario
htpasswd /var/www/restringido/.htpasswd juan
Para eliminar un usuario
Deberia bastar con borrarlo a mano del fichero .htpasswd, sin embargo tambien es posible hacer lo siguiente:
htpasswd -D /var/www/restringido/.htpasswd juan
Importante, al agregar un punto en el inicio del nombre, el sistema lo toma como un fichero oculto, por lo que para verificar la existencia de los ficheros, se debe usar el comando ls -la