Dónde colocar la carpeta
El punto ideal en el que montar nuestra carpeta sería bajo /srv
o
/home
. Me gusta más /srv
pero en mi caso, puesto que ya hice una partición
para /home
cuando instalé el sistema, en la que se encuentra la mayoría
del espacio en disco y de los datos, la montaré en /home/share/
y me
ahorraré muchos quebraderos de cabeza.
Además, /home
tiene otra ventaja, y es que, al estar en la misma
partición que el resto de usuarios, cuando mueva ficheros de mi carpeta personal a la
compartida, la operación será instantánea.
Crear un grupo para los usuarios que la compartan
Obviamente, todos los usuarios que quieran acceder a una carpeta tendrán que tener el
mismo grupo, así que vamos a crear uno para dicha tarea; lo llamaremos
trusted
:
# groupadd trusted
Ahora vamos a añadir a todos los usuarios a ese grupo (repetir con cada usuario,
reemplazando $USER
):
# usermod --append --groups trusted $USER
Recuerda que si estás cambiando los grupos de tu propio usuario, tienes que cerrar y abrir la sesión para que estos se actualicen.
Crear la carpeta y asignarle los permisos
# mkdir /home/share # chown --recursive root:trusted /home/share # chmod --recursive u=rwX,g=rwXs,o= /home/share
Lo que acabamos de hacer es crear la carpeta con dueño root
y
asignarle el SETGID para que lo que haya dentro siempre pertenezca al grupo
trusted
.
Ajustar los permisos tras haber volcado algunos datos
Después de mover ficheros ahí, notarás que tienen los mismos permisos que antes si
haces un ls -l
. Cuando hayas movido todo lo que necesites, vuelve a
ejecutar los 2 últimos comandos de antes:
$ chown --recursive $USER:trusted /home/share $ chmod --recursive u=rwX,g=rwXs,o= /home/share
Ajustar el umask
de los usuarios
Es posible que tus usuarios tengan un umask
demasiado permisivo o
restrictivo, y que esto ocasione que en el futuro te tengas que ver obligado a
ejecutar los comandos de arriba otra vez por problemas de permisos.
En nuestro caso, ya no queremos que esto vuelva a pasar, así que necesitaremos ajustar
el umask
de cada usuario con acceso para que permita lectura, escritura y
ejecución al grupo. Para ello, edita el fichero ~/.bashrc
(si el usuario
usa Bash),
~/.config/fish/config.fish
(si usa
Fish) o el equivalente y añade este comando al
final:
umask 0007
Esto quiere decir que los nuevos ficheros que cree tendrán permisos
go=rwX,o=
, o sea justo lo que necesitamos para compartir con seguridad.
Recuerda que umask
sólo se aplica al crear o copiar archivos, no al
moverlos.