Creo (no estoy seguro) que el propietario de un archivo / directorio y el usuario raíz son los únicos usuarios que pueden cambiar los permisos de un archivo / directorio. ¿Estoy en lo correcto o hay otros usuarios a los que también se les permite cambiar los permisos?
files
permissions
usuario226341
fuente
fuente
Para el funcionamiento normal, solo el usuario root y el propietario pueden hacerlo
chmod
. Además, la raíz puedechown
ychgrp
, y además, el propietario puedechgrp
siempre que el propietario sea miembro del grupo objetivo.Sin embargo, por razones de seguridad, existe otro caso: cualquier usuario con permiso de escritura en el directorio que contiene el archivo puede reemplazar el archivo con una copia y, por lo tanto, convertirse en el propietario, obteniendo la capacidad de modificar los permisos y el contenido.
Al igual que:
Creamos un directorio y escribimos un archivo como root. Como root posee el archivo, no podemos escribir en él, ni podemos hacer chmod:
Sin embargo, tenemos permiso de escritura en el directorio, por lo que podemos reemplazar el archivo para obtener la propiedad:
Y ahora que somos propietarios, podemos, por supuesto, hacer lo que queramos con ese archivo:
Del mismo modo, cualquier usuario con permiso de escritura para cualquier directorio en la ruta completa que conduce al archivo puede reemplazar la estructura del directorio a partir de ese momento, obteniendo así la propiedad del archivo con el nombre dado. La propiedad o los permisos del archivo original real (que cambiamos el nombre a "yourfile2") no cambian, por supuesto.
fuente
getfacl / setfacl
) que dan más flexibilidad que los permisos de archivo de estilo "clásico". La eliminación de archivos en * nix funciona eliminando el enlace al archivo del directorio, por lo que la eliminación de archivos siempre está controlada por los permisos del directorio; los permisos de archivo en sí mismos no juegan ningún papel allí.El
chmod
comando invoca directamente la llamada al sistema del mismo nombre; la página del manual para lachmod(2)
llamada al sistema (en Linux 4.10) dice:Entonces, sí, un proceso que se ejecuta como root puede cambiar los permisos de cualquier archivo si no se ha eliminado la
CAP_FOWNER
capacidad.También de interés es
chown
; la página del manualchown(2)
dice:fuente