otorgar permisos de escritura a un grupo a una carpeta

34

¿Cómo puedo otorgar permiso de escritura a 1 grupo?
Tengo 2 usuarios ( alexy ben).
alexEs miembro del grupo alexy del grupo consult.
benEs miembro del grupo beny del grupo consult.

Quiero otorgar acceso de lectura y escritura a ambos alexy bena la carpeta consult_documents.

Si creo que soy alexel propietario del directorio consult_documentsy le otorgo 775acceso al directorio consult_documents, beny alexpodré acceder a la carpeta, creo.

¿Pero esto también permitirá el benacceso a alexlas otras carpetas? Si un usuario está en dos grupos, ¿eso significa que todos los miembros de ambos grupos obtienen los mismos permisos en todas las carpetas?

anatak
fuente
¿Desea que alex y ben puedan crear archivos en consult_documents y permitirles a ambos acceso de lectura / escritura en esos documentos?
X Tian

Respuestas:

42

Otorgar permisos 775 en un directorio no significa automáticamente que todos los usuarios de un determinado grupo tendrán rwxacceso a él. Deben ser el propietario del directorio o pertenecer al grupo del directorio:

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner

Entonces, para permitir que alex y ben tengan acceso de escritura some_dir, el some_dirdirectorio en sí debe pertenecer al consultgrupo. Si ese no es el caso, el propietario del directorio (alex en su ejemplo) debería emitir el siguiente comando:

$ chgrp consult some_dir/

o para cambiar la propiedad del grupo de todo dentro del directorio:

$ chgrp -R consult some_dir/

Esto solo funcionará si alex es un miembro del consultgrupo, que parece ser el caso en su ejemplo.

Esto no permitirá que ben acceda a todos los directorios de alex por dos razones:

  1. No todos los directorios de alex pertenecerán al consultgrupo
  2. Algunos de los directorios de alex pueden pertenecer al consultgrupo, pero es posible que alex no haya elegido permitir el rwxacceso del grupo a ellos.

En resumen, la respuesta depende tanto de la propiedad del grupo como de los bits de permiso del grupo establecidos para el directorio.

Todo esto se proporciona si no utiliza ninguna medida de control de acceso obligatoria adicional en su sistema.

Joseph R.
fuente
consult_documents es un directorio, entonces, ¿cómo puede especificarlo como un grupo?
Babin Lonston
@Babinlonston No puedes. Usted especifica consultcomo grupo.
Joseph R.
Gracias, estaba buscando cómo dar acceso a un directorio a un grupo. No me di cuenta de que el comando chgrp podía hacer esto. Pensé que chgrp era solo para agregar / eliminar usuarios a un grupo.
anatak
1
@anatak La modificación de la pertenencia al grupo se realiza a través de usermodnotchgrp
Joseph R.
¿Es esto lo mismo que chown -R :consult some_dir/?
Aaron Franke
7

Esto hará que alex y ben se colaboren entre sí en este directorio, y no pueden colaborar en otro directorio.

Modificar el grupo de usuarios usando

# usermod -a -G alex,ben alex

Luego cambie el permiso para la carpeta

# chown alex:ben consult_documents

Mira aquí, lo he solucionado

$ sudo usermod -a -G alex,ben alex

$ sudo chown alex:ben consult_documents/

cd consult_documents/

$ touch babin

drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin

$ su - ben

cd /home/alex/consult_documents/

ben@system99:/home/alex/consult_documents$ touch babin1
ben@system99:/home/alex/consult_documents$ ls -la
total 8
drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin
-rw-rw-r-- 1 ben  ben     0 Feb 20 15:19 babin1
ben@system99:/home/alex/consult_documents$

Echa un vistazo aquí

Babin Lonston
fuente
6

Si entendí correctamente su pregunta, la respuesta es sí.

Dejame explicar:

Sus derechos de acceso a carpetas y archivos se dividen en tres categorías:

xxxyyyzzz
xxx are access rights for the owner
yyy are access rights for the owner's group
zzz are the access rights for everyone else

Todos los archivos y carpetas deben ser propiedad de un usuario.

Lo que significa que, si tiene una carpeta llamada consult_documents, y desea que sea accesible desde todos los miembros del grupo Consult, tendrá esto (con 755 derechos de acceso):

drwxrwxr-x Alex Consult [......]

El directorio es propiedad de Alex y el grupo es Consult. Alex tiene derechos de acceso RWX sobre él. Group Consult tiene derechos de acceso RWX en él. Otros usuarios tienen derechos de RX.

Como su usuario Alex tiene varios grupos, puede elegir el grupo para compartir.

Por ejemplo, si su carpeta es propiedad de Alex del grupo Alex:

drwxrwxr-x Alex Alex [......]

Hazlo:

chown Alex:Consult your_folder

Se convertirá:

drwxrwxr-x Alex Consult [......]

Y luego el directorio está disponible para el grupo Consult.

Tenga en cuenta que, hasta donde yo sé, puede agregar un grupo que no pertenezca al grupo del propietario. Pero no estoy seguro de si se recomienda (no está claro al leer los derechos de acceso).

Laurent C.
fuente
3

setfacl -mg: debian-transmission: rwx -R / mnt / sra

¡Encontré este comando agradable, en lugar de chown que cambiará completamente el propietario del archivo o directorio!

Verá en un 'ls -Al' que se agregará un signo + para mostrar que hay más de un propietario.

drwxr-xr-x 2 root root 4096 8 de noviembre 19:11 sdc1 /

drwxrwxr-x + 3 root root 4096 17 de febrero 19:16 sra /

¡Y luego puede usar getfacl para ver quién puede escribir o leer el archivo o directorio!

# file: sra

# propietario: root

# grupo: usuario root :: rwx

grupo :: rx

grupo: debian-transmission: rwx

máscara :: rwx

otro :: rx

predeterminado: usuario :: rwx

predeterminado: grupo :: rx

predeterminado: grupo: debian-transmission: rwx

predeterminado: máscara :: rwx

predeterminado: otro :: rx

Marc Cabana
fuente