En un sistema Linux, puede eliminar fácilmente a un usuario sin tener que eliminar ningún archivo que sea propiedad de ese usuario. Dicho archivo permanecerá en su lugar y la ID de usuario del propietario del archivo (que se almacena como un atributo del inode ) permanece sin cambios . De esta manera, un archivo puede convertirse efectivamente en sin propietario.
Si luego creas un usuario con la misma ID, el usuario se convertirá automáticamente en el propietario de los archivos huérfanos anteriores. Así es como un usuario nuevo puede involuntariamente (o con intenciones maliciosas) convertirse en el propietario de archivos que no deberían poseer, lo que obviamente es malo para la seguridad.
Tenga en cuenta que userdel
tiene un interruptor adicional para eliminar usuarios junto con sus archivos, pero solo eliminará los archivos de algunas ubicaciones fijas, como el directorio principal:
-r, --remove
Files in the user's home directory will be removed along with
the home directory itself and the user's mail spool. Files
located in other file systems will have to be searched for
and deleted manually.
Es posible que desee utilizar find
con el interruptor -nouser
para descubrir archivos con un propietario inexistente:
-nouser
No user corresponds to file's numeric user ID.
Aquí hay una demostración rápida de Arch Linux.
Agreguemos un usuario alice
y hagamos que sea el propietario de un archivo foo
.
[root@box /]# useradd alice
[root@box /]# touch foo
[root@box /]# chown alice foo
[root@box /]# ls -l foo
-rw-r--r-- 1 alice root 0 Jan 5 02:59 foo
Ahora vamos a eliminar alice
.
[root@box /]# userdel alice
[root@box /]# ls -l foo
-rw-r--r-- 1 1001 root 0 Jan 5 02:59 foo
ls
no puede determinar el nombre del propietario y solo muestra el ID numérico del propietario 1001
. Ahora agreguemos un nuevo usuario bob
.
[root@box /]# useradd bob
[root@box /]# ls -l foo
-rw-r--r-- 1 bob root 0 Jan 5 02:59 foo
Dado que a bob
se le ha asignado el siguiente ID de usuario gratuito, ahora es automáticamente el propietario del archivo.