Ohne sudo, am liebsten?
Ohne sudo, am liebsten?
Antworten:
Versuchen:
chattr +i filename
Wenn Sie dies dennoch tun, kann die Datei auch vom root
Benutzer nicht gelöscht werden. Gehen Sie dabei mit Vorsicht vor.
touch test && chattr +i test
, wirft es einen Fehler aus; chattr: Operation not permitted while setting flags on test
. Sie brauchen sudo
dafür. Daneben ist es noch möglich, die Datei zu löschen: sudo chattr -i test && rm test
funktioniert.
Nein das ist nicht möglich. Normalen Benutzern ist es nicht möglich, eine Datei zu löschen.
Sie müssen sudo
verhindern, dass Benutzer Dateien löschen. Ihr Administrator kann immer eine Datei löschen.
sudo chattr +i test
kann das Löschen verhindern, erfordert aber sudo
. Ein einfaches sudo chattr -i test
macht es möglich, die Datei zu entfernen. Kein anderer Benutzer als admin kann verwenden chattr
.
Und ... durch einfaches Neustarten und Aufrufen des Rettungsmodus kann diese Person diese Datei löschen. Es wäre ein Sicherheitsrisiko, wenn es eine Methode gäbe, um eine Datei niemals löschen zu können.
Es ist ein wenig grob, aber das ist nah - wenn Sie den Schreibzugriff auf das Verzeichnis entfernen, können die darin enthaltenen Dateien nicht gelöscht werden. Und es ist nicht erforderlich, sudo
wenn Sie es besitzen:
=^_^= izkata@izein:~$ mkdir test
=^_^= izkata@izein:~$ touch test/delme
=^_^= izkata@izein:~$ chmod a-w test
=^_^= izkata@izein:~$ echo 'Hello' > test/delme
=^_^= izkata@izein:~$ cat test/delme
Hello
=^_^= izkata@izein:~$ rm test/delme
rm: cannot remove `test/delme': Permission denied
So können Sie Berechtigungen für die Datei selbst festlegen, wie Sie möchten.
Wie von @Rinzwind angegeben, gibt es sicherlich viele Möglichkeiten, dies zu umgehen.
Um eine Datei zu löschen, benötigen Sie Schreibrechte für alle Verzeichnisse, mit denen die Datei verknüpft ist. Um die Verknüpfung zu einem Verzeichnis aufzuheben, benötigen Sie eine Schreibberechtigung für dieses Verzeichnis.
Solange Sie der Datei eine Schreibberechtigung (oder sogar ein Eigentumsrecht) erteilen, jedoch nicht dem Verzeichnis oder den Verzeichnissen , mit denen diese Datei verknüpft ist, kann diese Datei nicht gelöscht werden.
Der beste Weg, dies zu erreichen, besteht darin, diese Datei mit einem Verzeichnis zu verknüpfen, dessen Eigentümer root ist und das von niemandem beschrieben werden kann. Sie könnten es stattdessen zu Ihrem Eigentum machen, was bedeuten würde, dass Sie und root es löschen könnten.
Auf diese Weise könnten andere Benutzer diese Datei weiterhin mit anderen Verzeichnissen verknüpfen und von dort aus die Verknüpfung aufheben. Sie könnten die Datei jedoch weiterhin nicht löschen, da sie die Verknüpfung zu Ihrem eigenen Verzeichnis aufheben könnten.
Damit dies vollständig funktioniert, muss die Schreibberechtigung für jede Pfadkomponente zur Datei gesteuert werden. Da zum Beispiel , wenn die Datei , /a/b/the-file
und Sie haben /a/b
nicht beschreibbar von jedermann , aber jeder hat den Schreibzugriff auf /a
, dann könnten sie umbenennen , /a/b
um etwas anderes und ihre eigenen erstellen /a/b
und ihre eigenen schaffen /a/b/the-file
es.