El /tmp
el directorio se marca convencionalmente con la eliminación restringida bandera, que aparece como una carta de permiso t
o T
en ls
salida.
Eliminación restringida implica varias cosas. En el caso general, implica que sólo el propietario del archivo, o el propietario de /tmp
sí mismo, puede eliminar un archivo/directorio en /tmp
.
No puedes eliminar el archivo, porque no eres el propietario, que es root
. Intenta ejecutar rm
con sudo
que probablemente hayas olvidado.
sudo rm /tmp/test
Más específicamente solo para Linux, el indicador de eliminación restringida (en un directorio de escritura mundial como /tmp
) también habilita el protected_symlinks
, protected_hardlinks
, protected_regular
y protected_fifos
restricciones, que en dichos directorios evitan respectivamente que los usuarios sigan enlaces simbólicos que no son de su propiedad, evitan que los usuarios hagan enlaces duros a archivos que no son de su propiedad, evitan que los usuarios abran archivos FIFO que no son de su propiedad y evitan que los usuarios abran archivos existentes que no son de su propiedad. no poseen cuando esperaban crearlos.
Esto lo sorprenderá con errores de permisos al hacer otras cosas como root
cuando haces usa sudo
.
Más sobre estos en preguntas como "El comportamiento de los permisos de enlace duro es diferente entre CentOS 6 y CentOS 7", "El enlace simbólico no funciona como se esperaba cuando cambia de usuario" y "Los permisos de grupo para root no funcionan en /tmp".
El problema parece ser la parte pegajosa de /tmp
.
$ ls -ld /tmp drwxrwxrwt⃝ 1 root root 1044 Mar 13 12:09 /tmp
https://en.wikipedia.org/wiki/Sticky_bit
Cuando se establece el sticky bit de un directorio, el sistema de archivos trata los archivos en dichos directorios de una manera especial para que solo el propietario del archivo, el propietario del directorio o el usuario raíz puedan cambiar el nombre o eliminar el archivo. Sin el sticky bit establecido, cualquier usuario con permisos de escritura y ejecución para el directorio puede cambiar el nombre o eliminar los archivos contenidos, independientemente del propietario del archivo. Por lo general, esto se configura en el directorio /tmp para evitar que los usuarios normales eliminen o muevan los archivos de otros usuarios.