
De chown(2):
Sólo un proceso privilegiado (Linux: uno con la capacidad CAP_CHOWN) puede cambiar el propietario de un archivo. El propietario de un archivo puede cambiar el grupo del archivo a cualquier grupo del que sea miembro. Un proceso privilegiado (Linux: con CAP_CHOWN) puede cambiar el grupo arbitrariamente.
¿Cuál es el motivo de esta restricción? ¿Por qué un usuario sin privilegios no puede cambiar la propiedad de un archivo de su propiedad (es decir, no /etc/shadow)?
$ touch blah
$ chown root:root blah
chown: changing ownership of `blah': Operation not permitted
Respuesta1
Al permitir a los usuarios "regalar" archivos, entra en conflicto con varias características del sistema operativo. Como:
Taking up another user's disk quota.
Impersonating another user (or even root) via setuid.
Having insufficient privileges to undo a mistaken chown.
Making it appear that someone else had created a given file.
Setting up cron jobs to run on other user's accounts.
And many more...
Respuesta2
Es sólo una elección personal de los diseñadores de Linux no permitirlo, todas las razones de pseudoseguridad,dado, son engañosos, ya que existen sistemas Unix que lo permiten.
Creo que esta funcionalidad se redujo a si el comportamiento de su Unix siguió o no el 'System-V' (AT&T) o el Unix de Berkeley (BSD)...
En cuanto a otros problemas de seguridad mencionados:
Hacerse pasar por otro usuario (o incluso root) mediante setuid.
Sin problema: cambiar 'propietario' borra cualquier bit 'setXid' (U/G)
Tener privilegios insuficientes para deshacer un chown equivocado
Realmente no es un 'riesgo de seguridad', PERO, podría ser en sistemas que permiten cambiar de usuario, puede volver a cambiarlo si está en un directorio de su propiedad, de lo contrario: '¡tenga cuidado'!
Hacer que parezca que alguien más había creado un archivo determinado.
Todavía estaría en un directorio en el que usted podría escribir. Es decir, no puede moverlo a su directorio de inicio, a menos que lo tenga abierto para escribir en su grupo o en todos (o usted específicamente si las ACL están disponibles).
Configurar trabajos cron para ejecutarlos en las cuentas de otros usuarios.
Nuevamente, no funcionaría, ya que los crondirs son propiedad del usuario y ni siquiera están configurados para serlegiblepor otros usuarios, y mucho menos escribibles.
Si alguien pudiera cambiar la propiedad, cualquiera podría cambiar los permisos para obtener acceso a cualquier archivo del sistema.
No: solo si el usuario es "dueño" del directorio que contiene ese archivo. Es decir, puedo asignar un archivo llamado 'passwd' a la raíz, pero no puedo moverlo a /etc/ a menos que tenga permiso de escritura en /etc/.
cuotas
Un punto potencialmente válido...SIusa cuotas, pero parece que sería fácil de detectar si suma el espacio en disco por directorio de inicio; El único problema estaría en los directorios en los que varios usuarios pueden escribir. En cuyo caso, tal vez sea el propietario de ese 'directorio'. ÉlPUEDEEn el caso de los sistemas que admiten "regalar" archivos, solo puedes hacer esto en directorios que son de tu "propiedad", pero ha pasado MUCHO tiempo desde que estuve en un sistema que permitiera esto, así que no No recuerdo las restricciones exactas.
Me parece recordar que hubo alguna 'compensación' por permitir 'regalar archivos'... por ejemplo, en sistemas que permitían eso, no se permitía algo más que Linux sí permite, pero no recuerdo qué estaba desactivado. mano...
Yo diría que la 'respuesta' anterior debería desmarcarse como respuesta, ya que NO es la respuesta real. Es más una decisión de diseño; simplemente no sé cuáles fueron las compensaciones.
Es posible que haya problemas de seguridad no mencionados anteriormente que serían preocupaciones válidas, pero los anteriores no son válidos.
En mi opinión, debería ser un 'valor' configurable por el sistema en "/proc", pero en términos generales, creo que a la mayoría de la gente no le importa mucho.
Si hubiera una gran necesidad, se podría mejorar la seguridad de 'chown' y modificarlo para permitirlo y luego configurarlo con setuid 'root' para permitirle implementar dicha política.
Respuesta3
Bueno, si alguien pudiera cambiar la propiedad, entonces cualquiera podría cambiar los permisos para obtener acceso a cualquier archivo del sistema. Esto es malo no sólo desde el punto de vista del malware (no se requiere sudo), sino también desde el punto de vista de un administrador de sistemas. Si alguno de los usuarios pudiera cambiar alguno de los archivos, entonces los permisos de archivos son inútiles.
Respuesta4
Porque entonces el usuario puede evadir las cuotas del sistema de archivos. Si tengo una cuota de 100 MB y tú tienes una cuota de 100 MB, puedo cargar 100 MB, chmod a+r, chown you y luego cargar otros 100 MB.