Poner de acuerdo los permisos de archivo del QNAP Turbo NAS TS-219p y el cliente Linux

El QNAP Turbo NAS TS-219p no es en realidad un array de discos duros, sino un verdadero ordenador con procesador ARM que ejecuta como sistema operativo a un Linux embebido. Eso significa que por defecto formatea los discos duros con EXT3 y gestiona coherentemente los usuarios y los permisos de lectura, escritura, etc. Esto a su vez significa que un usuario concreto puede restringir permisos de sus ficheros, de tal forma que otros usuarios no puedan modificarlos o leerlos.

Obviamente, para aprovechar esta característica, el ordenador cliente que accede al QNAP debe tener un sistema operativo capaz de gestionar esas cosas con cierta sofisticación. En ese sentido, los clientes Windows son bastante tontorrones, y generalmente acceden al QNAP de la forma más burda posible: como root.

Bien, supongamos que guardas un fichero en el QNAP desde una máquina Windows. Se graba como usuario root y grupo root, es decir UID=0 y GID=0. Si ahora abres una conexión SSH hacia el QNAP, e intentas listar ese fichero, verías algo tal que así:

[~] # ls -l /Qmultimedia/desdewindows.txt
-rwxr--r--    1 admin   administ        5 Apr 15 16:38 /Qmultimedia/desdewindows.txt*
[~] #

Esto es porque se ha guardado como root (UID=0, GID=0). Pero en el QNAP no existe ningún root: el UID=0 se corresponde con el usuario "admin", y el GID=0 se corresponde con el grupo "administrators".

Vale, ahora vete a una máquina linux, monta alguna unidad del QNAP mediante NFS e intenta grabar ahí un fichero como usuario normal (por ejemplo como usuario "lacofi"). Si ahora haces SSH al QNAP e intentas listar el fichero verías algo tal que así:

[~] # ls -l /Qmultimedia/desdelinux.txt
-rwxr--r--    1 1000   everyone        5 Apr 15 16:38 /Qmultimedia/desdelinux.txt*
[~] #

Ups, ¿qué ha pasado?. ¿No debería decir "lacofi:users" en vez de "1000:everyone"?.

Sip. El problema es que en Ubuntu el usuario lacofi tiene un UID de 1000, y el grupo users tiene un GID de 100. En el QNAP Turbo NAS, el GID 100 está asignado al grupo "everyone". Pero el UID 1000 no está asignado a ningún usuario, lo que puede generar algunos problemas de acceso. Será todo más limpio y seguro si coordinas el cliente Linux y el servidor QNAP. Para ello tienes que crear un usuario que tenga UID 1000 (y ya que estamos, lo llamaremos también lacofi, así no nos liamos).

Puede que tú no uses Ubuntu o que tu UID no sea 1000. Para saber cual es tu UID solo tienes que hacer un "cat /etc/passwd | grep lacofi" (obviamente ponte a tí mismo en lugar de lacofi). Con ese comando te saldrá, de izquierda a derecha, tu login, una x, tu UID, tu GID, y más cosas que ahora no interesan.

¿Cómo podemos crear en el QNAP un usuario con UID 1000 de nombre lacofi?. Pues tal como explica nuestro amigo peterdv, ejecutando un comando en la consola SSH, claro. El comando es este:

[~] # adduser -h / -g "Linux User" -s /bin/sh -u 1000 -G everyone -p *contraseña1* -H lacofi

Lo que significa, de izquierda a derecha: creausuario con home en la raiz, descripción "Linux User", shell /bin/sh, UID 1000, grupo everyone, la contraseña que se especifica, y con login lacofi.

Obviamente, si tu Linux tiene más usuarios que van a acceder al QNAP, deberías localizar su UID y crear los correspondientes usuarios en el QNAP, para que los permisos sean coherentes. Por ejemplo:

[~] # adduser -h / -g "Linux User" -s /bin/sh -u 1001 -G everyone -p *contraseña2* -H maria

¿Correcto?. Con esto, la gestión de permisos de tu Linux está de acuerdo con la del QNAP. Pero Windows seguirá siendo un bruto y guardándolo todo como root:root (en el QNAP,  admin:administrators). Y esto significa que si creas un fichero desde Windows, luego no tendrás permiso suficiente para cambiarlo o borrarlo desde Linux (pero sí para leerlo, afortunadamente). En cambio, al revés sí te funcionará: todos los ficheros creados con Linux serán accesibles y modificables desde Windows. No es que Windows funcione mejor, no. Es que es un bestia haciendo las cosas. ;-)

Bueeeeno, vaaaale. No es del todo cierto que Linux no pueda modificar un fichero creado por Windows. Si quieres hacerlo, solo tienes que usar el mismo truco sucio que Windows: ¡hazte root!.

Be Sociable, Share!

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

2 comentarios »

 
  • avatar avatarNéstor dice:

    Llevando linux en las tripas ¿No acepta el uso de ldap o en su defecto, NIS?

  • avatar avatarlacofi dice:

    En realidad, si.

    No tiene soporte LDAP “out of the box”. Pero una vez instalado, tienes disponibles un conjunto de paquetes adicionales que puedes instalar desde sus repositorios. Uno de ellos es, precisamente, OpenLDAP. :-)

 

Deja un comentario

Disculpa, debes iniciar sesión para escribir un comentario.