rm: no se puede eliminar el directorio /: Permiso denegado

17

Hice un directorio llamado "shadi" y configuré este permiso

sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul  1 01:58 shadi

En esta situación, tengo permisos de "otros", pero ¿por qué no puedo eliminarlo?

sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied
Sinoosh
fuente

Respuestas:

25

Aquí el problema es que no tiene permiso "w" en el /homedirectorio. Al eliminar una nota de archivo que no está escribiendo en ese archivo, pero está cambiando el contenido del directorio que contiene el archivo, por lo que es imprescindible tener permiso "w" en el directorio si desea eliminar cualquier archivo del directorio.

captura de pantalla del terminal de "ls -ld / home"

Si estoy en un directorio con permiso "w", puedo eliminar cualquiera de sus archivos sin preocuparme por el permiso del archivo. Tenga en cuenta que mi directorio actual es el /home/rohithque tiene permiso "w" y, por lo tanto, puedo eliminar cualquiera de sus archivos independientemente de los permisos del archivo.

captura de pantalla del terminal de eliminación / inicio / rohith / shadi

Si se crea el mismo archivo en el directorio '/ home' que no tiene permiso "w", ¡obtendré el mismo resultado que el suyo! :)

captura de pantalla del terminal de intentar eliminar / home / shadi

rohith
fuente
8

Esto sucede porque no es dueño del directorio, es propiedad de 'root' y del grupo 'root'. Entonces, para eliminarlo, puede cambiar la propiedad y luego eliminarlo (aquí eleva sus derechos y se convierte en 'root' para tomar la propiedad):

sudo chown $USER:$USER ./shadi
rm -r ./shadi

O omite tomar la propiedad y hacer una sudo rmpara elevar sus derechos y convertirse en 'root' para la eliminación:

sudo rm -r ./shadi
Videonauth
fuente
significa que solo los propietarios pueden eliminar archivos?
Sinoosh
Sí, o necesita elevar sus derechos con el sudocomando. esto le pedirá su contraseña y se convertirá en 'root' para el siguiente comando en particular.
Videonauth
¿ahora si "shadi" era un archivo? Puedo eliminarlo con el usuario "sinoosh". No requiere "sudo", no es una escena para mí por qué no funciona con el directorio
Sinoosh
6

Prueba esto:

sudo rm -r ./shadi

Los permisos muestran la raíz del propietario y la raíz del grupo, por lo que debe usar sudo.

Bruni
fuente
1
Sí, este comando está bien, pero mi problema es por qué rm no funciona con estos permisos, tengo permisos completos para este directorio en otro campo
Sinoosh
"Tengo permisos completos para este directorio" No, no lo tienes. "otro campo" shadi no es "otros".
Rinzwind 01 de
pero "sinoosh" pertenece a otros y ejecuta "rm -r shadi"
Sinoosh
0

Son cuentas diferentes.

¿Cómo esperaría seguridad de su cuenta si todos tuvieran permiso para eliminar su directorio personal?

No tiene wpermiso para eliminar el directorio de inicio de otra persona de forma predeterminada, excepto si lo hacen chmod +w.

Aquí están los diferentes permisos, y un ejemplo ( -rwxr-x---/ rwxrx):

+ - + - + - + - +
| + | u | g | o |
+ - + - + - + - +
| r | 1 | 1 | 1 |
+ - + - + - + - +
| w | 2 | 2 | 2 |
+ - + - + - + - +
| x | 4 | 4 | 4 |
+ - + - + - + - +
| * | 7 | 5 | 0 |
+ - + - + - + - +
Dice así: 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, por lo que 750, es decir, un sistema de autorización ideal. El propietario ( uen este caso) puede leer, escribir y ejecutar el archivo, el grupo del propietario ( gen este caso) puede leer y ejecutar, y cualquier otra persona ( oen este caso) no puede hacer nada. Este es el legendario:
u: usuario actual (Usuario)
g: grupos de usuarios actuales (Grupos)
o: grupos de usuarios no actuales (Otros)
r: permiso de lectura (Leer)
w: permiso de escritura (escritura)
x: permiso de ejecución (X-ecute)
.

EKons
fuente