He estado usando Linux durante mucho tiempo yaúnEstoy completamente a oscuras sobre cómo funcionan realmente los permisos de archivos. Con eso en mente, ¿alguien tiene algún libro o guía detallada que pueda leer para comprender las cosas por completo? He hecho una buena cantidad de administración de sistemas, así que sé las cosas fáciles como hacer que los directorios sean legibles y escribibles, hacer que los archivos sean ejecutables y cambiar el propietario de un archivo, pero en cuanto a compartir archivos entre usuarios, estoy perdido.
Aquí está mi principal problema. Tengo varias máquinas en las que pretendo sincronizar mi biblioteca de música. He estado usando Unison por un tiempo y es una excelente opción ya que puedo ejecutarlo fácilmente a través de SSH en mi red local que acabo de configurar. Todos ganan.
Hasta este momento, he estado sincronizando computadoras usando un disco duro externo de 2 TB. (computadora 1 al unísono en HD, computadora 2 al unísono en HD, etc.) Esto es, en el mejor de los casos, tedioso, especialmente porque cifré el disco, lo que hace que sea una gran molestia conectarlo a todas mis máquinas y sincronizarlo. De todos modos, la unidad ejecuta ext4 (en TrueCrypt), por lo que mantiene toda la información del sistema de archivos Unix, como propietarios y grupos. Acabo de configurar una nueva máquina y la puse en Unison para reproducir la música, y me di cuenta de que ahora todos mis permisos están fuera de control. Tuve que ejecutar Unison como root ya que esa era la única manera de sacar los archivos del disco externo. Aparentemente, dado que estoy usando un nombre de usuario diferente en esta máquina que mi habitual "rfkrocktk" en todas las máquinas, esto esencialmente supone un gran problema.
Aquí está mi caso de uso. Esta computadora portátil tiene dos usuarios efectivos, "leandra" y "rfkrocktk". Quiero compartir música entre estos dos usuarios, así que puse un enlace simbólico en /home/rfkrocktk/Music para que apunte a /home/leandra/Music. ¿Cómo puedo (a) permitir que ambos usuarios accedan para leer/escribir/eliminar archivos en esta carpeta y (b) mantener todo bien sincronizado sin alterar la propiedad del archivo?
EDITAR
Pude hacer que las cosas funcionaran, pero aún no del todo. Configuré la identificación del grupo de mi directorio de música para mi grupo media-users
y agregué tanto a mi usuario principal rfkrocktk
como al usuario compartido mt-daapd
al grupo. Ahora, rfkrocktk
puedo acceder a los archivos perfectamente, pero mt-daapd
no puedo ver nada en el directorio. Aquí están mis identificaciones:
$ id rfkrocktk
> uid=1000(rfkrocktk) gid=1000(rfkrocktk) groups=1000(rfkrocktk),4(adm),20(dialout),24(cdrom),29(audio),46(plugdev),104(lpadmin),115(admin),120(sambashare),124(vboxusers),1001(jupiter),2002(media-users)
$ id mt-daapd
> uid=123(mt-daapd) gid=65534(nogroup) groups=65534(nogroup),2002(media-users)
Intenté configurar mt-daap
la identificación del grupo principal para el media-users
grupo, pero no cambia nada.
Aquí están mis permisos en el /home/rfkrocktk/Music
directorio:
drwxr-Sr-- 201 rfkrocktk media-users 12288 2011-01-13 12:26 Music
Correr sudo -i -u mt-daapd ls -l /home/rfkrocktk/Music
no produce nada. ¿Cómo puedo arreglar esto?
Respuesta1
Configuraría el propietario del archivo como root y el grupo con algo así como "música", y luego haría que ambos sean miembros del grupo "música". Luego, establece el directorio de música en setgid.(lo que significará que los elementos creados en el directorio heredarán la propiedad del grupo del directorio). Luego, establezca los permisos de archivo en 0660 y estará todo listo.
Los permisos de archivos son de usuario, de grupo, de mundo y, a menudo, se muestran como un número octal (por ejemplo, 0660), donde:
1 - ejecutivo 2 - escribir 4 - leer
Estos se pueden agregar, por ejemplo, 0751 significa que el propietario del archivo puede leer, escribir y ejecutar; el grupo puede leer y ejecutar; todos los demás sólo pueden ejecutar.
Respuesta2
Los nombres no importan. La propiedad de los archivos y grupos Unix se almacena en el sistema de archivos y se almacena numéricamente, no por nombre. Desde su máquina original, abra una terminal como su usuario habitual y diga:
id -u
Esto le dará la identificación numérica de su usuario allí. Al verificar la propiedad de los archivos, se realiza una comparación entre su ID de usuario que inició sesión y la ID en el sistema de archivos. Al mostrar el nombre de usuario, la ID se transforma en texto al consultar passwd, lo que da como resultado su nombre local.
En su nueva máquina, realice el mismo paso que el anterior. ¿El DNI es diferente? Si es diferente, entonces "usted" en la nueva máquina no es el propietario de los archivos. En ambas máquinas, de manera similar, si dices
id -G
Obtendrá una lista de ID de grupo al que pertenece su usuario. El grupo de cada archivo debe coincidir con uno de esos ID o no será de su propiedad. Puede obtener el usuario y grupo numérico real de un archivo con ls -nd file
o stat file
.
En la mayoría de los casos, dos sistemas diferentes no tendrán los mismos ID de usuario. Puede sincronizarlos manualmente editando passwd, pero luego debe actualizar cuidadosamente todos los archivos en el sistema para convertir los ID antiguos a los nuevos equivalentes. Sincronizar ID entre sistemas es una tarea compleja en la que la mayoría de los usuarios domésticos no se molestan; es el dominio de LDAP, NIS y otras soluciones similares.
Para resolver su problema, querrá que todos los archivos sean propiedad de un ID de grupo que exista en ambos sistemas, luego asegúrese de que los usuarios de ambos sistemas sean miembros del grupo y luego otorgue acceso de lectura/escritura ( chmod g+rw
) a ese grupo. .
Respuesta3
Puede configurar el directorio de Música (y todos sus archivos y subdirectorios) para que tenga 775 permisos, de modo que el propietario de los archivos y cualquier persona del mismo grupo puedan hacer lo que quieran con los archivos. Luego, el siguiente truco es crear un nuevo grupo con el nombre que desee (por ejemplo, compartir) y cambiar el directorio de Música (y todos sus archivos y subdirectorios) al nuevo grupo. Ahora sólo tiene que asegurarse de que los usuarios a los que les otorga acceso de lectura/escritura a los archivos compartidos estén en el grupo "compartir". Si necesita que esto funcione con otras computadoras, solo tenga cuidado de que el grupo compartido tenga la misma ID numérica en todas las computadoras y estará bien.