GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el propósito del directorio setgid?

Solución 1:

Si bien un archivo / binario setgid puede no ser obviamente útil, definitivamente encuentro el bit setgid muy útil aplicado en directorios. Asumiendo que usted es parte de diferentes grupos de trabajo, cada uno de los cuales tiene sus propios grupos de Unix (permisos). Seguramente querrá poner el bit setgid en las carpetas de proyectos, asegurándose de que se aplica la propiedad de grupo correcta cuando crea nuevos archivos y, por lo tanto, permitir que sus colegas en ese grupo de proyecto accedan a esos archivos.

Solución 2:

El uso principal es preservar el propietario del grupo de un árbol de archivos:

[[email protected] tmp]$ mkdir dir1 && touch dir1/file && mkdir dir1/dir
[[email protected] tmp]$ mkdir dir2 && chgrp staff dir2 && chmod 2755 dir2 && touch dir2/file && mkdir dir2/dir
[[email protected] tmp]$ ls -al dir1
total 32
drwxrwxr-x   3 lockie  lockie   4096 Dec 13 19:32 .
drwxrwxrwt 125 root root 20480 Dec 13 19:32 ..
drwxrwxr-x   2 lockie  lockie   4096 Dec 13 19:32 dir
-rw-rw-r--   1 lockie  lockie      0 Dec 13 19:32 file
[[email protected] tmp]$ ls -al dir2
total 32
drwxr-sr-x   3 lockie  staff  4096 Dec 13 19:32 .
drwxrwxrwt 125 root root  20480 Dec 13 19:32 ..
drwxrwsr-x   2 lockie  staff  4096 Dec 13 19:32 dir  < note new dir is g+s, owned by "staff" group, so the setgid behaviour acts recursively
-rw-rw-r--   1 lockie  staff     0 Dec 13 19:32 file < note new file is owned by "staff" group
[[email protected] tmp]$

Esto tiende a ser útil en entornos donde diferentes usuarios crearán/editarán archivos/directorios en un directorio:cuando todos los archivos/directorios comparten el mismo grupo, todos los usuarios pueden editar/cambiar los archivos/directorios (si los permisos lo permiten):Esto evita situaciones como "xyz posee el archivo abc, así que no puedo editarlo".

Una alternativa al uso de setgid de esta manera es el grpid opción de montaje del sistema de archivos.

Del montaje del hombre:

grpid o bsdgroups / nogrpid o sysvgroups

Estas opciones definen qué ID de grupo obtiene un archivo recién creado. Cuando se establece grpid, toma la identificación del grupo del directorio en el que se crea; de lo contrario (predeterminado), toma el fsgid del proceso actual, a menos que el directorio tenga establecido el bit setgid, en cuyo caso toma el gid del directorio principal, y también obtiene el bit setgid establecido si es un directorio en sí mismo.

Cuando está habilitado, los archivos/directorios creados en un sistema de archivos montado en grpid también heredan el grupo del directorio principal:

[[email protected] ~]$ mount | grep /home
/dev/mapper/VolGroup00-home on /home type ext3 (rw,grpid)
[[email protected] ~]$ mkdir dir3 && touch dir3/file && mkdir dir3/dir
[[email protected] ~]$ ls -al dir3
total 12
drwxrwxr-x  3 lockie users 4096 Dec 13 19:37 .
drwxrwxr-x 12 lockie users 4096 Dec 13 19:37 ..
drwxrwxr-x  2 lockie users 4096 Dec 13 19:37 dir < inherited "users" group from parent dir
-rw-rw-r--  1 lockie users    0 Dec 13 19:37 file  < inherited "users" group from parent dir
[[email protected] ~]$

Lo encontré usando grpid La opción reduce adecuadamente la posibilidad de error humano (ya que el sistema de archivos hace el trabajo, independientemente de los permisos de directorio).


Linux
  1. ¿Cuál es la forma más segura de vaciar un directorio en * nix?

  2. ¿Qué significa opt (como en el directorio opt)? ¿Es una abreviatura?

  3. ¿Cuál es el directorio recomendado para almacenar el contenido del sitio web?

  4. ¿Cuál es el propósito de cd ` (comilla grave)?

  5. ¿Cuáles deberían ser los permisos de directorio de inicio ideales en Linux?

Ruta absoluta vs relativa en Linux:¿Cuál es la diferencia?

¿Cuál es el propósito del archivo .bashrc en Linux?

¿Cuál es el significado de `! -d` en este comando Bash?

¿Cuál es el punto de cifrar el directorio de inicio?

¿Qué significa ./ (punto barra oblicua) en Linux?

¿Qué significa el sufijo .d en Linux?