¿Una forma de bash de Linux para que un usuario sin privilegios tome posesión del contenido de un solo directorio en particular?

¿Una forma de bash de Linux para que un usuario sin privilegios tome posesión del contenido de un solo directorio en particular?

Quiero que un usuario en particular cambie recursivamente el propietario y el grupo de todo el contenido de un directorio en particular, y solo de ese directorio. El directorio es una especie de "bandeja de entrada", donde un servicio escribe archivos y subdirectorios.

Actualmente tengo un administrador sudo chown, pero preferiría que el propietario del destino lo hiciera él mismo, sin que ese usuario tenga más permisos de los necesarios. Digamos que el propietario original es "verdugo" y el propietario final debería ser "público". Ningún usuario está en el mismo grupo.

sudo chown -R audience:watchers /usr/files/pathofdir No está del todo bien, porque no quiero que la audiencia tenga autoridad ilimitada para usar chown. Mi primera suposición fue intentar agregar "audiencia" a /etc/sudoers con permiso para /usr/bin/chown y /usr/bin/chgrp. Pero eso es demasiada autoridad.

Pensé en escribir un guión exclusivamente para la audiencia, pero no sé cómo hacer que ese guión tenga los permisos correctos y nada más.

¿Cuál es una buena manera de hacer esto?

Respuesta1

Puede especificar un comando completo en sudoers, con argumentos y todo, en cuyo caso el usuario tendrá autoridad para ejecutar el comando especificado solo con los argumentos especificados. Entonces esta sudoersentrada debería resolver tu problema:

audience  ALL=/usr/bin/chown -R audience\:watchers /usr/files/pathofdir

Sin embargo, creo que deberías comprobar las ACL, ya que sospecho que tu problema se puede solucionar más fácilmente con el uso de una ACL predeterminada en el directorio. Veresta publicaciónpara un ejemplo.

Respuesta2

@Lasek señaló que probablemente quería usar ACLS. Esto parece estar funcionando para mí:

sudo setfacl -RPdm user:audience:rwX /usr/files/pathofdir
sudo setfacl -RPdm group:watchers:rwX /usr/files/pathofdir
sudo setfacl -RPm user:audience:rwX /usr/files/pathofdir
sudo setfacl -RPm group:watchers:rwX /usr/files/pathofdir

Probablemente haya una sintaxis más concisa, pero este es el primer uso desetfacl

información relacionada