Skip to content

¿Se puede borrar un archivo sobre el que no tienes permiso de escritura?

Respuesta breve

Sí, puede ser posible. Eliminar un archivo (unlink) modifica el directorio padre, así que Linux comprueba el permiso de escritura (y de búsqueda) sobre el directorio, no sobre el archivo. Un archivo de solo lectura en un directorio donde puedes escribir puede borrarse. En directorios compartidos como /tmp el sticky bit cambia la regla: solo el propietario del archivo, el del directorio o un proceso privilegiado pueden borrar o renombrar entradas.

Muchos candidatos responden «no» por instinto: si no puedo escribir en un archivo, no puedo borrarlo. En Linux eso es incorrecto, y la razón ilustra cómo funcionan los sistemas de archivos.

Un nombre de archivo es una entrada de directorio

Borrar un archivo es la llamada al sistema unlink(2), que quita un nombre de un directorio. Por tanto, el permiso decisivo es el del directorio. La página del manual enumera como causa de fallo que no se permite el acceso de escritura al directorio que contiene la ruta. Los bits del propio archivo (incluido solo lectura) no condicionan el borrado.

El sticky bit lo restringe en directorios compartidos

Directorios como /tmp son escribibles por todos; sin protección, cualquiera borraría archivos ajenos. El sticky bit (S_ISVTX) lo evita: según inode(7), un archivo en ese directorio solo puede renombrarse o borrarse por su propietario, por el propietario del directorio o por un proceso privilegiado. Se reconoce por la t final en ls -ld /tmp (drwxrwxrwt).

Por qué importa en seguridad

  • Un directorio escribible con un script o configuración de root permite a un usuario sin privilegios sustituirlo (borrar y crear el suyo), aunque no pueda editar el original. Aparece en revisiones de escalada de privilegios.
  • Por eso las guías de hardening señalan los directorios escribibles por todos sin sticky bit.

Por qué tientan los distractores

«Escritura sobre el archivo» es el modelo intuitivo pero erróneo. «Solo root» ignora que cada usuario borra sus archivos. «Solo la propiedad» confunde la regla del sticky bit con la regla general.

Qué buscan los entrevistadores

«Borrar es una operación de directorio, así que decide el permiso de escritura del directorio, y el sticky bit lo restringe en directorios compartidos.» Un ejemplo de escalada suma puntos.

Posibles preguntas de seguimiento

  • ¿Qué hace el sticky bit en /tmp y cómo se reconoce con ls -l?
  • ¿Cómo afecta esto a un atacante que puede escribir en un directorio con un script propiedad de root?
  • ¿Qué permiso de directorio hace falta para listar nombres y cuál para abrir los archivos?

Fuentes

Certificaciones

Consigue 100 preguntas de entrevista de ciberseguridad + respuestas

Déjanos tu correo y te enviaremos el pack en PDF gratuito y el mazo de flashcards.

Sin spam. Cancela tu suscripción cuando quieras.