rm: Verzeichnis kann nicht entfernt werden /: Berechtigung verweigert

16

Ich habe ein Verzeichnis mit dem Namen "shadi" erstellt und diese Berechtigung dafür festgelegt

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

In dieser Situation habe ich die Berechtigung "Andere", aber warum kann ich sie nicht löschen?

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

Antworten:

25

Hier besteht das Problem darin, dass Sie für das /homeVerzeichnis keine "w" -Berechtigung haben . Beachten Sie beim Löschen einer Datei, dass Sie nicht in diese Datei schreiben, sondern den Inhalt des Verzeichnisses ändern, in dem sich die Datei befindet. Die Berechtigung "w" für das Verzeichnis ist daher ein Muss, wenn Sie eine Datei aus dem Verzeichnis löschen möchten.

Terminal-Screenshot von "ls -ld / home"

Wenn ich mich in einem Verzeichnis mit der Berechtigung "w" befinde, kann ich alle Dateien löschen, ohne mir Gedanken über die Dateiberechtigung selbst zu machen. Beachten Sie, dass mein aktuelles Verzeichnis über /home/rohithdie Berechtigung "w" verfügt und ich daher alle Dateien unabhängig von den Dateiberechtigungen löschen kann.

Terminal-Screenshot des Entfernens von / home / rohith / shadi

Wenn dieselbe Datei im Verzeichnis '/ home' erstellt wird, für die keine "w" -Berechtigung besteht, wird dieselbe Ausgabe wie für Ihre ausgegeben! :)

Terminal-Screenshot des Versuchs, / home / shadi zu entfernen

rohith
quelle
8

Dies liegt daran, dass Ihnen das Verzeichnis nicht gehört. Es gehört "root" und der "root" -Gruppe. Um es zu löschen, können Sie entweder das Eigentum ändern und es dann löschen (hier erhöhen Sie Ihre Rechte und werden 'root', um das Eigentum zu übernehmen):

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

Oder Sie überspringen die Inhaberschaft und machen ein sudo rm, um Ihre Rechte zu erhöhen und "root" für die Löschung zu werden:

sudo rm -r ./shadi
Videonauth
quelle
es bedeutet, dass nur die Besitzer Dateien löschen können?
Sinoosh
Ja, oder Sie müssen Ihre Rechte mit dem sudoBefehl erhöhen . Dann werden Sie nach Ihrem Passwort gefragt und Sie werden 'root' für den folgenden Befehl.
Videonauth
tun Sie jetzt, wenn "Shadi" eine Datei war, kann ich es mit "Sinoosh" Benutzer entfernen. Es ist nicht erforderlich "Sudo" seine Szene nicht für mich machen, warum es nicht mit Verzeichnis
funktioniert
5

Versuche dies:

sudo rm -r ./shadi

Die Berechtigungen zeigen Eigentümerstamm und Gruppenstamm an, daher müssen Sie sudo verwenden.

Bruni
quelle
1
Ja, dieser Befehl ist in Ordnung, aber mein Problem ist, warum rm nicht mit diesen Berechtigungen arbeitet Ich habe volle Berechtigungen für dieses Verzeichnis in einem anderen Feld
Sinoosh
"Ich habe volle Berechtigungen für dieses Verzeichnis" Nein, das tust du nicht. "other field" shadi ist nicht "others".
Rinzwind
aber "sinoosh" gehört anderen und er führt "rm -r shadi" aus
Sinoosh
2

Verwenden Sie diesen Befehl als Root: rm -rf ./shadi

Anoop pS
quelle
0

Es sind verschiedene Konten.

Wie würden Sie Sicherheit von Ihrem Konto erwarten, wenn jeder die Erlaubnis hätte, Ihr Home-Verzeichnis zu löschen?

Sie haben nicht die wBerechtigung, das Basisverzeichnis einer anderen Person zu löschen, es sei denn, diese Person hat das Recht, das Basisverzeichnis einer anderen Person zu löschen chmod +w.

Hier sind die verschiedenen Berechtigungen und ein Beispiel ( -rwxr-x---/ rwxrx):

+ - + - + - + - +
| + | u | g | o |
+ - + - + - + - +
| r | 1 | 1 | 1 |
+ - + - + - + - +
| w | 2 | 2 | 2 |
+ - + - + - + - +
| x | 4 | 4 | 4 |
+ - + - + - + - +
| * | 7 | 5 | 0 |
+ - + - + - + - +
Es geht so: 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, so 750, also ein ideales Berechtigungssystem. Der Eigentümer ( uin diesem Fall) kann die Datei lesen, schreiben und ausführen, die Eigentümergruppe ( gin diesem Fall) kann lesen und ausführen, und jeder andere ( oin diesem Fall) kann nichts tun. Dies ist der legendäre:
u: aktueller Benutzer (Benutzer)
g: aktuelle Benutzergruppen (Gruppen)
o: nicht aktuelle Benutzergruppen (Andere)
r: Leserechte (Lesen)
w: Schreibberechtigung (Write)
x: Ausführungsberechtigung (X-ecute)
.

EKons
quelle