¿Es posible especificar grupos en /etc/security/capability.conf?

¿Es posible especificar grupos en /etc/security/capability.conf?

Me inspiré para comenzar a jugar con las capacidades de Linux nuevamente, mi proyecto favorito es reemplazar el setuid en muchos de los archivos binarios y brindar acceso a utilidades privilegiadas adicionales a usuarios que no son root. Hacer esto agregando las capacidades relevantes ( +ei, el problema es discutible +ep) a través de setcapy configurar mi cuenta de usuario personal ( jdavis4) para tener esas capacidades asignadas a su sesión al iniciar sesión a través de pam_cap.soy ha ido de maravilla. Puedo dar a usuarios individuales acceso a "ping" y "kill" a través de capacit.conf

Sin embargo, el problema que tengo es que se me ocurrió que si este fuera un sistema de producción, un administrador probablemente querría asignar capacidades mediante algún tipo de unidad agregada para no tener que hacer esto para cada usuario individual. cada vez que hacen uno. De esta manera, se puede agregar un usuario al grupo "filesystemAdmin" y obtener cosas como CAP_DAC_OVERRIDE"ProcessManagement" o agregarlas a "ProcessManagement" y obtener cosas como CAP_SYS_NICEy CAP_SYS_KILL.

¿Es esto posible actualmente?

Respuesta1

Agregamos @groupsintaxis para admitir pam_cap.sos capability.confen libcap-2.29. Al momento de escribir este artículo,libcapestá en la versión 2.49.

También hay alguna documentación parapam_cap.so aquí.

Respuesta2

Lo que quieres hacer no es posible. No solo pam_capmanipula las capacidades heredables (por lo que en realidad no otorga ninguna capacidad permitida/efectiva), sino que también solo trata con usuarios y no con grupos (ni siquiera con grupos primarios).

Respuesta3

No puedo encontrar ninguna documentación que indique que capacitity.conf se pueda asignar directamente a un grupo.

Esto parece ser producto de la necesidad de pam_cap de "quitar" los privilegios del proceso de autenticación, que probablemente tiene "toda" la capacidad, o la suficiente para convertirse en tal. Esto crea una propensión a que parezca imprudente tener asignaciones aditivas acumulativas, ya que podría convertirse rápidamente en una "estructura incontrolable". Por tanto, las asignaciones realizadas a través de capacidad.conf no son acumulativas. Si aciertas una cerilla, eso es lo que obtienes. Ni mas ni menos.

Con eso dicho:

  • es posible configurar pam_cap para cargar capacidades desde un archivo arbitrario en el formato /etc/security/capability.conf

  • es posible utilizar scripts dentro de una configuración pam. Sería razonablemente trivial generar un archivo capacitity.conf por usuario para el usuario que se autentica, en función de su membresía en el grupo y enviarlo al módulo pam_cap.

No es "elegante" ni "ideal", pero para una gran base de usuarios tipo ldap probablemente sea más comprobable que la "sincronización a través de Jellyware de capa 8" entre usuarios válidos y una entrada de texto completo por usuario en un solo /etc. /security/capability.conf.

información relacionada