Linux muestra que tengo permiso de escritura pero no puedo eliminar este archivo

Linux muestra que tengo permiso de escritura pero no puedo eliminar este archivo

Linux muestra que tengo permiso de escritura pero no puedo eliminar este archivo. Ya lo verifiqué y tengo permiso de ejecución en cada directorio principal. ¿Alguna idea de cómo podría estar pasando esto?:

deployer@my-web:/usr/local/bin$ ls -la
total 10656
drwxr-xr-x  2 root     root        4096 Feb 11 21:25 .
drwxr-xr-x 10 root     root        4096 Feb  3 13:21 ..
-rwxr-xr-x  1 deployer deployer 1836198 Mar 18 19:05 composer

deployer@my-web:/usr/local/bin$ rm composer
rm: cannot remove ‘composer’: Permission denied

Respuesta1

La respuesta corta es que no sólo necesita permisos en el archivo sino también permisos en el directorio que contiene el archivo. En UNIX clásico, un directorio es en realidad un tipo especial de archivo, uno que contiene punteros a los archivos que contiene. Es por eso que necesita acceso de escritura (w) en el directorio.

En este caso, necesitará cambiar (o hacer que un propietario privilegiado cambie) los permisos en /usr/local/bin.

Respuesta2

Los permisos para directorios no son exactamente los mismos que para archivos.
El permiso de escritura permite al usuario crear, eliminar o modificar cualquier archivo o subdirectorio, incluso si el archivo o subdirectorio es propiedad de otro usuario.

En el caso de un directorio, nada cambia mucho ya que se usa el mismo comando. Sin embargo, debido a que los directorios generalmente contienen archivos que también deben asignarse al nuevo usuario o grupo, usamos la opción '-R' bandera, que significa 'recursivo' - en otras palabras, todos los subdirectorios y sus archivos:

chown -R user:group dirname

información relacionada