
Cuando creo un directorio como usuario root con permiso 777, puedo eliminarlo cuando inicio sesión como usuario predeterminado, pero cuando inicio sesión como usuario a
o b
, no puedo eliminarlo. Muestra permiso denegado.
Mi pregunta es, ¿por qué mi usuario predeterminado puede eliminar esa carpeta creada por root y por qué otros usuarios no pueden, aunque todos tienen el permiso 777?
Respuesta1
Si un usuario tiene permisos de escritura y ejecución en un directorio, puede eliminar cualquier archivo o directorio que contenga, independientemente de su propiedad. Esto es así porque la eliminación de un archivo o subdirectorio de un directorio es una modificación del directorio, no de lo que se elimina.
Ejemplo: creo un directorio propiedad de root en un directorio de mi propiedad y luego lo elimino.
$ sudo mkdir directory
$ ls -l
total 4
drwxr-xr-x 2 root wheel 512 Nov 25 11:11 directory
$ rmdir directory
$ ls -l
(ninguna salida)
Ahora, si el subdirectoriocontiene archivos, entonces los permisos en ese directorio se vuelven más interesantes:
$ sudo mkdir directory
$ sudo touch directory/file
$ rm -rf directory
rm: directory/file: Permission denied
rm: directory: Directory not empty
Aquí no puedo eliminar el subdirectorio porque no tengo permisos para eliminar el archivo que está dentro de él.
Pero usted dice que los permisos están configurados en 777
, lo que significa que cualquiera puede eliminar los archivos que contiene:
$ sudo chmod 777 directory
$ rm -rf directory
(No hay error)
Otro usuario de mi sistema aún no podría hacer esto porque no tiene permisos de escritura en el directorio donde estoy trabajando, aunquepodríatodavía borra elcontenidodel subdirectorio de propiedad raíz, si ese directorio fuera accesible para ellos (los usuarios necesitarían permisos de ejecución en el directorio ytodos los directorios principales).