Inicio » Equipos de Ecritorio » linux
Archivo de la categoría: linux
Instalación y configuración de Servidor Webdav en Linux
Hoy vamos a ver un tipo de servidor no muy utilizado, pero muy práctico, y con un sencillo acceso para los clientes, Webdav, podremos compartir archivos a través del navegador, por lo que los clientes no necesitan instalar ninguna aplicación adicional.
Se puede configurar de tipo anónimo o con credenciales de acceso, veremos las dos formas.
El puerto que utilizará el servidor será el estándar para el servicio web, el puerto 80, por defecto éste puerto suele estar abierto, pero si no es así habrá que abrirlo para que funcione correctamente.
** En caso de que el servidor deba estar accesible desde Internet, también deberemos abrir el puerto 80 en el router apuntando hacia nuestra máquina. Aquí he encontrado un buen manual para ello.
CONFIGURAR SIN USUARIO Y CONTRASEÑA
Empezamos, instalaremos el servidor web a través del programa apache
sudo apt install apache2 apache2-utils
A continuación crearemos la carpeta desde la que vamos a compartir los archivos, la ruta habitual es dentro del directorio /var/www, en mi caso se llamará «compartir»
sudo mkdir /var/www/compartir
Le daremos la propiedad de la carpeta al usuario y grupo www-data, de forma recursiva
sudo chown -R www-data:www-data /var/www/
Debemos habilitar un par de módulos de apache:
sudo a2enmod dav
sudo a2enmod dav_fs
Tal y como nos indica la terminal, reiniciamos apache
sudo systemctl restart apache2
Pasamos a configurar el archivo de configuración de los sitios web de Apache, como siempre antes de modificarlo le haremos copia de seguridad, para tener el original guardado
sudo cp -p /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.copia
Ahora sí, editamos el archivo, como siempre, yo lo hago con gedit
sudo gedit /etc/apache2/sites-available/000-default.conf
De la siguiente manera es cómo debe quedar el archivo, simplemente cambiar «compartir» por el nombre de vuestra carpeta
DavLockDB /var/www/DavLock <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /compartir /var/www/compartir <Directory /var/www/compartir> DAV On </Directory> </VirtualHost>
** Lo que pongamos entre «Alias /» y «/var…» será lo que debemos poner tras la ip/dominio del servidor a la hora de acceder, yo he puesto el mismo nombre que el de la carpeta, «compartir», pero le pondremos lo que queramos.
Guardamos el archivo, cerramos y reiniciamos el servicio apache
sudo systemctl restart apache2
Con ésto ya tendríamos en funcionamiento nuestro servidor web, probamos el acceso en el navegador, como hemos dicho, ponemos la IP/Dominio y el alias:
** Como se puede apreciar, el navegador nos indica la versión de Apache y el puerto utilizados, si no queremos que sea así, haríamos copia y editaríamos el fichero /etc/apache2/conf-enabled/security.conf, simplemente tendríamos que descomentar la línea «ServerSignature Off» y comentar la de «ServerSignature On», tal y como se ve en la captura, guardar y reiniciar Apache2
sudo gedit /etc/apache2/conf-enabled/security.conf
——————————————————————————————————————–
CONFIGURAR CON USUARIO Y CONTRASEÑA
Para que sólo se pueda acceder con usuario y contraseña, comenzaremos por crear el usuario que queramos, en mi caso será «jucarmona», pondremos la contraseña deseada
sudo htdigest -c /etc/apache2/users.password webdav jucarmona
Daremos a Apache la propiedad del fichero users.password
sudo chown www-data:www-data /etc/apache2/users.password
Modificamos el archivo de configuración del sitio
sudo gedit /etc/apache2/sites-available/000-default.conf
En éste caso, debe quedar como se indica a continuación, por supuesto modificando el alias y la ruta de la carpeta por lo que corresponda en vuestro caso
DavLockDB /var/www/DavLock <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /compartir /var/www/compartir <Directory /var/www/compartir> DAV On AuthType Digest AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user </Directory> </VirtualHost>
Guardamos y cerramos el fichero, debemos activar el módulo digest
sudo a2enmod auth_digest
Por último, reiniciamos el servicio para que surtan efecto los cambios
sudo systemctl restart apache2
Listo, comprobamos que nos pide usuario y contraseña para poder acceder
Instalación y configuración de servidor NFS en Linux
Ya hemos visto varias formas de compartir archivos, tanto a nivel de Red local, como es el caso de Samba, visto en Windows y en Linux, como a nivel de Internet con FTP, que hemos visto también en Windows y Linux.
Hoy veremos cómo hacerlo a través del protocolo NFS (Network File System), el cual se utiliza a nivel de red local, pues no tiene autenticación ni cifrado de datos. Es muy fácil de instalar, y en el cliente se monta automáticamente la carpeta compartida, con lo que se integra en el explorador de archivos.
** Si hay que indicar que el acceso, por defecto, no es persistente, o sea que cada vez que reiniciemos el equipo cliente, deberemos montar la carpeta del servidor, para que se monte en el inicio deberemos realizar lo necesario para ello, según el sistema operativo.
Publi de Amazon Fantástico precio para ésta Tablet Samsung Galaxy Tab A8 – Tablet de 10.5”, 64GB de almcenamiento, Wifi, Android 11
Comenzamos, lo instalamos:
sudo apt install nfs-kernel-server
Ahora crearemos la carpeta desde la que compartiremos los archivos (la que montaremos en el cliente). El lugar más habitual para insertar éste tipo de carpetas es dentro del directorio /srv
sudo mkdir /srv/carpetanfs
Para que pueda acceder cualquier usuario, cambiaremos la propiedad y los permisos al directorio, de forma recursiva
sudo chown -R nobody:nogroup /srv/carpetanfs
sudo chmod 777 /srv/carpetanfs
Como siempre, antes de tocar el archivo de configuración, que es /etc/exports, realizaremos una copia de seguridad
sudo cp -p /etc/exports /etc/exports.copia
Ahora sí, procedemos a modificar el archivo:
sudo gedit /etc/exports
En éste archivo simplemente añadiremos una línea con: la ruta a nuestra carpeta, la dirección IP de la/s máquina/s desde las que se va a acceder (** en éste caso yo pondré la red local completa, y así me aseguro que no tendré problemas en los clientes **), y mantendremos rw si queremos que sea de lectura y escritura, o ro si sólo será de lectura, lo demás lo dejamos por defecto.
Vemos la línea que yo agrego, mi red es 192.168.1.1/24, permitiré lectura y escritura
/srv/carpetanfs 192.168.1.1/24(rw,sync,no_subtree_check)
Publi de Amazon Inmejorable Monitor Xiaomi 1C 23.8″ FHD (ISP, 1920×1080, 16:9, 60Hz, 6ms, 250cd/m2, HDMI + VGA, 178º, 3 lados sin bordes), negro
Guardamos y cerramos el archivo, nos queda exportar el directorio y reiniciar el servicio NFS
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
Bien, hemos acabado en el lado del servidor, ahora veremos cómo acceder según el sistema operativo del cliente que utilicemos:
- Linux
Crearemos la carpeta dónde se debe montar la del servidor, lo haré en la ruta /mnt
sudo mkdir /mnt/carpetacliente
Instalaremos el paquete nfs-common
sudo apt install nfs-common
Para montar la carpeta del servidor realizaremos el comando: sudo mount «ipdelservidor»:/carpetadelservidor carpetaquecreamosparamontar, se ve de forma sencilla a continuación:
sudo mount 192.168.1.30:/srv/carpetanfs /mnt/carpetacliente/
Listo, de ésta forma tendremos dentro de «carpetacliente» lo que haya en la «carpetanfs» del servidor, y se sincronizará automáticamente.
- Windows
Antes de acceder debemos habilitar el cliente NFS, desde Panel de control, vamos a Programas y Activar o desactivar características de Windows. Nos pedirá reiniciar, lo hacemos
Una vez activado el cliente NFS, abriremos la consola ó cmd, y realizaremos el comando: mount -o anon «ipdelservidor»://»rutadelacarpetaenelservidor» «letra de unidad». En mi caso sería (la voy a montar en la unidad I):
mount -o anon 192.168.1.30://srv/carpetanfs I:
A partir de éste momento, y hasta que reiniciemos el equipo, tendremos en el explorador de archivos, en Equipo, una nueva ubucación de red con la carpeta del servidor
Esto ha sido todo, espero que les haya servido de ayuda.
Gestionar permisos y propiedad de las Carpetas y Archivos en Linux
Todo el que está en el mundo Linux se suele encontrar con problemas a la hora de hacer gestiones con los archivos; el tema de los permisos (lectura, escritura y ejecución/paso), y la propiedad de los mismos (a qué usuario y grupo pertenece, y por lo tanto qué se puede hacer), de lo que además no hay demasiada información en la Red, y la que hay suele ser confusa y explicada de forma avanzada y difícil de entender.
Para solventar ésto, voy a tratar de explicar ese tema de forma sencilla, para que todo el mundo lo entienda, con «trucos de memoria», con los que yo mismo los aprendí, y muy fáciles de retener.
PROPIEDAD DE LOS ARCHIVOS Y CARPETAS
Veremos primero cómo saber a qué usuario y grupo pertenece un archivo o carpeta y cómo cambiarlo.
Si realizamos el comando ls -la en cualquier ruta del equipo veremos, entre otras cosas, de quién es:
ls -la
El primer campo señalado nos indica a qué usuario pertenece (en el ejemplo a «usuario»), el segundo dice de qué grupo es (en el ejemplo a «usuario»).
Cambiar la propiedad del usuario y/o grupo es muy sencillo, se realiza con el comando «chown».
** Si no nos pertenece, y/o tampoco tenemos permisos en el destino, tendremos que realizar el cambio con el usuario root (utilizando sudo, por ejemplo)
- Para cambiar sólo el usuario el comando sería:
chown «nuevo usuario» «archivo/carpeta»
En el ejemplo le voy a dar el archivo «Listin» al usuario «pepe». Como no tengo permisos sobre ese usuario, debo emplear sudo. En la siguiente captura vemos el cambio realizado.
sudo chown pepe Listin
- Para cambiar el grupo:
chown :»grupo» «archivo/carpeta» ** No olvidar los dos puntos
Cambiaré el archivo «Accesorios» del grupo «usuario» al grupo «pepe»
sudo chown :pepe Accesorios
- Finalmente, para cambiar tanto usuario como grupo:
chown «usuario»:»grupo» «archivo/carpeta»
Cambiaremos el usuario de la carpeta «Alumnos» de «usuario» a «pepe», y el grupo de «usuario» a «contabilidad»
sudo chown pepe:contabilidad Alumnos
** Indicar que con éste comando, sólo cambiará la propiedad de la carpeta, pero no de los archivos que la contienen, para eso después de «chown» habría que poner el argumento «-R», ejemplo:
sudo chown -R pepe:contabilidad Alumnos
PERMISOS DE LOS ARCHIVOS Y CARPETAS
Una vez sabemos identificar a quién pertenecen los archivos, vamos a ver los diferentes permisos y a modificarlos.
Con el mismo comando que antes, los permisos de cada uno de ellos se encuentran en la primera columna de la Izquierda.
Desglosaremos esa primera columna para una línea:
- El primer carácter nos indica de qué tipo se trata; si es un guión es un archivo, si es una «d» es una carpeta, y si es una «l» se trataría de un enlace (acceso directo)
- Los restantes carácteres se refieren a los permisos, constan de 3 permisos diferentes:
- r: lectura
- w: escritura
- x: ejecución si es un archivo, paso si es una carpeta
Éstos permisos se repiten 3 veces, indicando lo que podría hacer
- El usuario
- El grupo
- Otros (otros usuarios/ otros grupos)
** Aquí surge un término a memorizar, para mí muy importante, pues el orden anterior siempre es el mismo, y si se nos olvida podríamos tener grandes errores: UGO (usuario, grupo, otros)
Cojamos sólo un par de líneas de la captura anterior, para verlo bien:
- Accesorios vemos que es un archivo (empieza por guión), los siguientes carácteres los agrupamos de 3 en 3 y concluimos:
- El usuario tiene permiso de lectura y escritura, pero no de ejecución (r, w)
- El grupo tiene permiso de lectura y escritura, pero no de ejecución (r, w)
- Otros sólo tienen permiso de lectura (r)
- Alumnos vemos que es una carpeta (empieza por d), y:
- El usuario tiene permiso de lectura, escritura y paso (rwx)
- El grupo tiene permiso de lectura, escritura y paso (rwx)
- Otros tienen permiso de lectura y paso, pero no de escritura (r, x)
Una vez visto ésto, y recalcando la palabra UGO, vamos a ver una de las formas de cambiar los permisos (para mí la más sencilla, hay más)
Para ello asignamos un valor a cada uno de los permisos:
- r vale 4
- w vale 2
- x vale 1
Cogemos el ejemplo anterior, supongamos que Accesorios es un archivo ejecutable, y queremos que:
- El usuario pueda leer, escribir y ejecutar, sumamos 4+2+1=7
- El grupo pueda leer y ejecutarlo, pero no escribir en él, sumamos 4+1=5
- Otros puedan leer y escribir, pero no ejecutarlo, sumamos 4+2=6
Ya lo tenemos, utilizaríamos el comando «chmod» y el valor, que es 756
Como pertenece a «usuario», y es con quién voy a realizar el cambio, no es necesario emplear sudo:
chmod 756 Accesorios
Para que quede claro, vamos a realizarlo ahora con la carpeta Alumnos, recordamos:
- r vale 4
- w vale 2
- x vale 1
UGO
Queremos que:
- El usuario pueda leer y pasar por la carpeta, pero no escribir en ella, sumamos 4+1=5
- El grupo sólo pueda pasar por la carpeta, sería 1
- Otros no puedan hacer nada, sería 0
Tenemos el comando:
chmod 510 Alumnos
Indicar que, como en el apartado de la propiedad, si cambiamos los permisos a una carpeta, no lo haremos a lo que contiene, para ello tendríamos que emplear el argumento -R, ** se debe tener cuidado al emplearlo, podemos causar un desastre.
chmod -R 510 Alumnos
Bueno, eso es todo, espero haberte ayudado con el tema de permisos y propiedades en Linux, lo he tratado de explicar de la forma más sencilla posible.