
Digamos que creé un directorio (llamado temporal) en mi ~ y dentro de él he creado algunos archivos. Ahora, mi umask es 0002 pero para hacer ejercicio cambié los permisos en ~/temp/:
chmod 222 temp
Hasta donde yo sé, tener privilegios de escritura para un directorio significaría que no puedo abrirlo ni leer su contenido, pero debería poder agregar un archivo (o eliminar un archivo) dentro. Por ejemplo, pensé que esto funcionaría bien:
touch temp/new_file.txt
Sin embargo, cuando intento hacer esto, simplemente arroja un error:
touch: cannot touch 'temp/new_file.txt': Permission denied
No pude descubrir por qué esto no funciona como esperaba, así que me pregunto qué PUEDO hacer con el directorio cuando solo tengo permisos de escritura y por qué crear un nuevo archivo como lo intenté no funciona.
(Todos los comandos anteriores se ejecutaron en ~)
¡Cualquier ayuda apreciada!
Respuesta1
Los permisos funcionan de manera diferente para directorios,
Esta no es una explicación perfecta pero,
Según la página del manual de chmod ( man chmod
):
Las letras rwxXst seleccionan bits de modo de archivo para los usuarios afectados: lectura (r), escritura (w),ejecutar (o buscar directorios) (x), ejecutar/buscar solo si el archivo es un directorio o ya tiene permiso de ejecución para algún usuario (X), establecer ID de usuario o grupo en ejecución(es), indicador de eliminación restringida o bit adhesivo (t). En lugar de una o más de estas letras, puede especificar exactamente una de las letras ugo: los permisos otorgados al usuario propietario del archivo (u), los permisos otorgados a otros usuarios que son miembros del grupo del archivo (g), y los permisos otorgados a usuarios que no se encuentren en ninguna de las dos categorías anteriores (o).
Lo que significa que para escribir en un archivo dentro de un directorio primero debe hacerlocambiar al directorio (permiso de ejecución)y crear un archivo (permiso de escritura)