Agrupar dentro de los permisos de archivo de grupo

13

Traté de encontrar esto aquí, pero no pude disculparme si es un duplicado.

Digamos que tengo 2 grupos y un usuario: grupo1, grupo2, usuario1 con la siguiente estructura: grupo1 es miembro del grupo 2, usuario1 es miembro del grupo1

Ahora digamos que tengo los siguientes archivos con permisos relevantes

file1 root:group1 660
file2 root:group2 660

Ahora, cuando inicio sesión en el usuario1, puedo editar el archivo1, pero no editar el archivo2. A falta de agregar usuario1 al grupo2, ¿hay alguna forma de hacerlo? o no hay manera?

Estoy usando Ubuntu por cierto.

Aram Papazian
fuente
Si no me equivoco, los permisos clásicos basados ​​en grupos en Linux no le permiten poner un grupo dentro de otro grupo. Entonces, ¿instaló algo que habilita esta función?
Gunther Struyf
Un usuario puede ser miembro de varios grupos. Si agrega Usuario1 al grupo2, puede cambiar el Archivo2. El comando de su elección sería useradd.
user1146332
@GuntherStruyf No cambié nada ... Por lo que pude ver, Ubuntu lo permite por defecto ...
Aram Papazian
@ user1146332 El objetivo es no agregar user1 al grupo2. Si esa es la única manera, entonces puedo hacerlo, pero en teoría preferiría una estructura de anidación grupal ...
Aram Papazian

Respuestas:

15

No existe el hecho de que un grupo sea miembro de un grupo. Un grupo, por definición, tiene un conjunto de miembros usuarios. Nunca he oído hablar de una función que le permita especificar "subgrupos" donde los miembros de los subgrupos obtienen automáticamente la membresía en el supergrupo al iniciar sesión. Si se /etc/groupenumera group1como miembro de group2, designa al usuario llamado group1(si tal usuario existe, lo cual es posible: los nombres de usuario y los nombres de grupo viven en espacios de nombres diferentes).

Si desea que el usuario1 tenga acceso al archivo2, tiene varias soluciones:

  • Hacer file2accesible al mundo (probablemente no quieras esto)
  • Haga que user1 sea el propietario del archivo2: chown user1 file2
  • Agregar usuario1 al grupo2: adduser user1 group2
  • Agregue una ACL file2que otorgue acceso al usuario1 o al grupo`:

    setfacl -m user:user1:rw file2
    setfacl -m group:group1:rw file2
    

    Consulte Hacer que todos los archivos nuevos en un directorio sean accesibles para un grupo al habilitar las ACL.

Gilles 'SO- deja de ser malvado'
fuente
77
Sí, unix / linux no admite grupos anidados. Sería útil si lo hiciera, pero simplemente no lo hace. Windows sí y Active Directory sí. LDAP también lo hace, por lo que debería ser posible si la cuenta y los datos del grupo están en LDAP en lugar de en / etc / passwd y / etc / group files ... pero eso es excesivo cuando hay soluciones simples como ACL (o simplemente agrega el usuario a ambos grupos)
cas