Establecer nombre de usuario y grupo pnetworkingeterminados para files en el directory

Utilizando esta útil publicación, puedo establecer un grupo pnetworkingeterminado y permissions de file en una carpeta.

Tengo problemas para configurar un propietario pnetworkingeterminado (teamlead uid 1234).

setfacl -d -mg::rwx /my/test/folder setfacl -d -mo::rx /my/test/folder getfacl /my/test/folder # file: /my/test/folder # owner: teamlead # group: web_prod # flags: -s- user::rwx group::rx other::rx default:user::rwx default:group::rwx default:other::rx 

Con ese:

 [mary@boxen]# touch /my/test/folder/somefile [mary@boxen]# ll /my/test/folder/somefile -rw-rw-r--. 1 mary web_prod 0 Nov 6 08:58 somefile 

Entonces, se asigna el grupo correcto, pero el nuevo file tiene la propiedad del usuario que crea el file. Me gustaría que los files recién creados tengan teamlead: propietario / grupo web_prod.

Parece que setfacl se puede usar para configurar un usuario pnetworkingeterminado también. Con la carpeta existente acl config (arriba):

 [mary@boxen]# setfacl -d -mu:1234:rwx /my/test/folder 

Ahora para crear un file como un usuario diferente. Espero que tenga teamlead: propiedad de web_prod.

 [mary@boxen]# touch /my/test/folder/anotherfile [mary@boxen]# ll /my/test/folder/anotherfile -rw-rw-r--+ 1 mary web_prod 0 Nov 6 08:58 somefile 

El file nuevo todavía tiene la propiedad del propietario que crea el file, no uid 1234 (teamlead).

¿Es posible lo que busco, o lo estoy haciendo mal?

    Con setfacl puede establecer permissions pnetworkingeterminados pero no propietario / grupo pnetworkingeterminado para los files recién creados.

    Para que los files nuevos sean propiedad de un usuario específico, necesitaría un bit de setuid que funcione como el bit setgid en los directorys. Desafortunadamente eso no está implementado.

    Con setfacl puedes hacer algo que es casi equivalente en la mayoría de los escenarios: puedes establecer una ACL como default:user:teamlead:rwx . De esa forma, el usuario nombrado puede escribir los nuevos files, incluso si alguien más lo posee.

    Siempre se crea un nuevo file perteneciente al usuario con el que se está ejecutando el process de creación del file. (La identificación de usuario efectiva, para ser precisos.) Esto no se puede cambiar, porque permitir a los usuarios crear files que pertenecen a otros usuarios sería un agujero de security, similar a permitir que los usuarios no root regalen un file .

    Lo que sea que intentes hacer, no necesitas hacer esto. Las ACL son suficientes para garantizar que lo que sea necesario para leer el file más tarde tenga suficientes permissions. Deje el file propiedad del usuario que lo creó.

    En Linux, debe tener sgid en el directory principal para henetworkingar grupos de files. (Aunque no necesita sgid en el directory en sistemas BSD).

    Si desea que los nuevos files se creen con el nuevo grupo, necesita cambiar el grupo primario.

    Para esto puedes usar usermod y el parámetro -g

      -g, --gid GROUP The group name or number of the user's new initial login group. The group must exist. Any file from the user's home directory owned by the previous primary group of the user will be owned by this new group. The group ownership of files outside of the user's home directory must be fixed manually. 

    p.ej

     test2@kinakuta:/tmp$ id uid=1002(test2) gid=1002(test2) grupos=1002(test2),1003(testgroup) test2@kinakuta:/tmp$ touch test2 test2@kinakuta:/tmp$ ls -la test2 -rw-r--r-- 1 test2 test2 0 nov 23 22:26 test2 root@kinakuta:/tmp# usermod -g testgroup test2 root@kinakuta:/tmp# su test2 test2@kinakuta:/tmp$ touch test2_1 test2@kinakuta:/tmp$ ls -la test2_1 -rw-r--r-- 1 test2 testgroup 0 nov 23 22:27 test2_1