La mayoría de los sistemas Unix evitan que los usuarios "regalen" archivos, es decir, los usuarios solo pueden ejecutarse chown
si tienen los privilegios de usuario y grupo objetivo. Dado que el uso chown
requiere ser propietario del archivo o ser root (los usuarios nunca pueden apropiarse de los archivos de otros usuarios), solo el root puede ejecutarse chown
para cambiar el propietario de un archivo a otro usuario.
La razón de esta restricción es que regalar un archivo a otro usuario puede permitir que sucedan cosas malas en situaciones poco comunes pero importantes. Por ejemplo:
- Si un sistema tiene cuotas de disco habilitadas, Alice podría crear un archivo de escritura mundial en un directorio accesible solo para ella (para que nadie más pueda acceder a ese archivo de escritura mundial), y luego ejecutarlo
chown
para que ese archivo sea propiedad de otro usuario Bill. El archivo entonces contaría bajo la cuota de disco de Bill, aunque solo Alice puede usar el archivo.
- Si Alice le regala un archivo a Bill, no hay rastro de que Bill no haya creado ese archivo. Esto puede ser un problema si el archivo contiene datos ilegales o comprometedores.
- Algunos programas requieren que su archivo de entrada pertenezca a un usuario en particular para autenticar una solicitud (por ejemplo, el archivo contiene algunas instrucciones que el programa realizará en nombre de ese usuario). Por lo general, este no es un diseño seguro, porque incluso si Bill creó un archivo que contiene instrucciones sintácticamente correctas, es posible que no haya tenido la intención de ejecutarlas en este momento en particular. Sin embargo, permitir que Alice cree un archivo con contenido arbitrario y lo tome como entrada de Bill solo puede empeorar las cosas.