2011-11-17 53 views
46
[email protected]$ whoami 
    max 
    [email protected]$ ls -la ./defines.php 
    -rwxrwxrwx 1 max max 1985 2011-11-16 02:01 ./defines.php 
    [email protected]$ chmod 0777 ./defines.php 
    [email protected]$ rm ./defines.php 
    rm: cannot remove `./defines.php': Permission denied 
    [email protected]$ 

¿Cómo puedo eliminar este archivo?rm: no se puede eliminar: Permiso denegado

+0

¿Está el archivo en el mismo directorio que está ejecutando el comando? entonces debería ser solo 'rm defines.php'. ¿por qué estás preppending el '. /'? –

+0

Otra cosa: debe ser 'chmod 777' –

+1

No hace la diferencia. 'file' y'./file' son equivalentes. – Femaref

Respuesta

123

El código dice todo:

[email protected]$ chmod 777 . 

bien, no dice todo.

En UNIX y Linux, la capacidad de eliminar un archivo es no determinada por los bits de acceso de ese archivo. Está determinado por los bits de acceso del directorio que contiene el archivo.

Piénsalo de esta manera: borrar un archivo no modifica ese archivo. No está escribiendo en el archivo, entonces ¿por qué debería "w" en el archivo? Eliminar un archivo requiere editar el directorio que apunta al archivo, por lo que necesita "w" en ese directorio.

+2

OMG! Esta respuesta me dio la solución a otro problema, esta misma lógica se aplica para leer los archivos, no solo eliminarlos. –

Cuestiones relacionadas