Para el funcionamiento normal, solo el usuario root y el propietario pueden hacerlo chmod
. Además, la raíz puede chown
y chgrp
, y además, el propietario puede chgrp
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:
14:14 mybox:~ mkdir mydir
14:14 mybox:~ cd mydir/
14:14 mybox:mydir echo foo | sudo tee yourfile
foo
14:14 mybox:mydir ls -ld . yourfile
drwxr-xr-x 3 me staff 102 Apr 11 14:14 .
-rw-r--r-- 1 root staff 4 Apr 11 14:14 yourfile
Creamos un directorio y escribimos un archivo como root. Como root posee el archivo, no podemos escribir en él, ni podemos hacer chmod:
14:15 mybox:mydir echo bar > yourfile
-bash: yourfile: Permission denied
14:15 mybox:mydir chmod a+x yourfile
chmod: Unable to change file mode on yourfile: Operation not permitted
Sin embargo, tenemos permiso de escritura en el directorio, por lo que podemos reemplazar el archivo para obtener la propiedad:
14:15 mybox:mydir mv yourfile yourfile2
14:15 mybox:mydir cp yourfile2 yourfile
14:15 mybox:mydir ls -ld . yourfile
drwxr-xr-x 4 me staff 136 Apr 11 14:15 .
-rw-r--r-- 1 me staff 4 Apr 11 14:15 yourfile
Y ahora que somos propietarios, podemos, por supuesto, hacer lo que queramos con ese archivo:
14:15 mybox:mydir echo bar > yourfile
14:15 mybox:mydir chmod a+x yourfile
14:16 mybox:mydir cat yourfile
bar
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.
14:17 mybox:mydir ls -l yourfile2
-rw-r--r-- 1 root staff 4 Apr 11 14:14 yourfile2