jucarmona

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.

Publi Amazon Increíble éste ASUS ROG G713IE-HX011 – Portátil Gaming de 17.3″ Full HD 144Hz (Ryzen 7 4800H, 16GB RAM, 1TB SSD, GeForce RTX 3050 Ti 4GB, Sin Sistema Operativo) Gris Eclipse – Teclado QWERTY español

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

Publi Amazon Problemas de cobertura wifi en casa? Prueba éste Mercusys – HALO H50G(3-Pack), AC1900 Mesh Wi-Fi, Doble Banda, Cobertura hasta 550 m², 3× Gigabit Puerto por Unidad, MU-MIMO, Beamforming, Control Parental, Smart Connect

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

Publi Amazon Un Disco duro externo con estilo, USB 3.1 de alta velocidad externo, 1 TB, 2 TB, disco duro portátil para Mac, PC, portátil (2 TB, negro)

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>

Publi Amazon Potente Mini PC Ordenador de Sobremesa,CHUWI Corebox Windows 10 Mini Computadora con Intel Core i5-8259U CPU,16GB RAM+512GB SSD,2.4G+5G Wi-Fi de Doble Banda,BT 4.0.

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

Si te ha sido de utilidad, me invitas a una cerveza? 😊

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

Publi de Amazon En busca de pórtatil? Te recomiendo éste ASUS TUF Gaming F15 FX506HCB-HN200 – Ordenador Portátil Gaming 15.6″ FullHD 144Hz (Intel Core i5-11400H, 16GB RAM, 512GB SSD, RTX 3050-4GB, Sin Sistema Operativo) Negro – Teclado QWERTY español, en rebaja

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.

Si te ha sido de utilidad, me invitas a una cerveza? 😊

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

Publi de Amazon Quieres un pórtatil de oficina barato? Te recomiendo éste Lenovo IdeaPad 3, Ordenador Portátil 15.6″ FullHD (Intel Celeron N4020, 8GB RAM, 256GB SSD, Integrated Intel UHD Graphics 600, Windows 10 Home en Modo S) Negro, Teclado QWERTY Español, ahora con un buen descuento.

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

Publi de Amazon Ojo a ésta gran tablet Xiaomi Pad 5 – Tablet de 11” (Wi-Fi, Pantalla 2K+ de 120Hz, 128 GB de Memoria Interna, 6 GB de RAM, batería de 8720 mAh), a un precio excelente

** 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)

Publi de Amazon Menuda oferta la de ésta Silla de Batman Gaming Junior – Asiento Gamer para Escritorio – Sillon De Oficina – Licencia Oficial DC Comics, y con un descuento de Cómic

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

Publi de Amazon Muy equilibrado éste Pórtatil Lenovo IdeaPad 3 – Ordenador portátil 14″ FullHD (Intel Core i5-1135G7, 8GB RAM, 512GB SSD, Intel Iris Xe Graphics, Windows 10 Home en modo S), Color Gris – Teclado QWERTY Español, y económico

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.

Si te ha sido de utilidad, me invitas a una cerveza? 😊