Ändern Sie die Dateiberechtigungen in Linux

769
Manish Mathai

Gibt es überhaupt eine Möglichkeit, die Berechtigungen einer Datei in Linux zu ändern, ohne den Befehl chmod zu verwenden?

1
Falls das Tagging von mouviciel nicht offensichtlich genug ist, fehlt das "Warum" dieser Frage: Weil dies meine Hausaufgabe ist. blahdiblah vor 14 Jahren 0
Technisch ist es eine Frage, deren Antwort mir ein paar Punkte geben kann. Es scheint, dass der allgemeine Konsens ist, dass dies nicht möglich ist. Manish Mathai vor 14 Jahren 0

6 Antworten auf die Frage

2
Satanicpuppy

Mit dem Befehl umask können Sie dies automatisch tun . Abgesehen davon bin ich nicht sicher, ob ich die Frage verstehe. Wie viele Möglichkeiten haben Sie benötigen, um Dateiberechtigungen zu ändern?

1
innaM

Die offensichtliche Antwort auf diese Frage wäre eine andere Frage: WARUM?

Sie können jedoch Ihren aktuellen umask ändern, eine Kopie der Datei erstellen, die Datei löschen und schließlich die Kopie umbenennen, damit sie dem Original entspricht.

AKTUALISIEREN:

Beachten Sie, dass dies nur funktioniert, wenn Sie die aktuellen Berechtigungen in restriktivere ändern. Der andere Weg scheint nicht zu funktionieren.

Warum? Möglicherweise ist der Befehl chmod aus Sicherheitsgründen gesperrt oder entfernt, um zu verhindern, dass Benutzer Dateikennzeichen ändern. (Nicht, dass ich irgendetwas andeuten würde, wenn ich das sage.) Torben Gundtofte-Bruun vor 14 Jahren 0
Its a homework question. Is this the correct sequence of commands ? umask 0777 (say) cp file file.bk rm file mv file.bk file Manish Mathai vor 14 Jahren 0
eine Umuask von 0777 macht die Dateizugriffsrechte auf 000. John T vor 14 Jahren 0
1
John T

Denken Sie daran, dass bei umask der Wert von 777 abgezogen wird. Wenn Sie also möchten, dass eine Datei 777 Berechtigungen hat, z. B .:

$ umask 000 $ cp oldfile newfile $ rm oldfile 
Hast du das probiert? Bei mir funktioniert das nicht. innaM vor 14 Jahren 0
Sie können immer eine neue Datei berühren, um sie mit 777-Berechtigungen zu erstellen. Dann `cat oldfile> newfile`. John T vor 14 Jahren 0
1
Kazimieras Aliulis

Sie können Ihr eigenes Programm mit der gleichen Funktionalität schreiben :)

1
Kyle Brandt

Jedes Programm verwendet die chmod () - Familie von Systemaufrufen (siehe man 2 chmodAbschnitt 2 für Systemaufrufe), mit denen die Berechtigungen einer Datei geändert werden. Das ist der einzige praktische Weg, theoretisch könnte man die Partition direkt bearbeiten, wenn man root ist, aber das ist irgendwie verrückt.

Wenn Sie den Befehl cp verwenden, erstellen Sie eine andere Datei - Sie kopieren sie. Diese umask-Beispiele ändern also nicht die Berechtigungen für eine Datei.

Ich wünschte, ich kann meinen Professor davon überzeugen, dass dies ohne chmod nicht möglich ist. Manish Mathai vor 14 Jahren 0
Es ist möglich, nur verrückt :) Kazimieras Aliulis vor 14 Jahren 0
Manish: Wenn er sagt, der Umask ist die Antwort, zeigen Sie ihm die Ausgabe von `stat file1` und` stat file2` und zeigen Sie ihm, wie die Inodes sich unterscheiden, sie sind unterschiedliche Dateien. Alles, was Sie wirklich tun, ist das Erstellen einer anderen Datei mit unterschiedlichen Berechtigungen, die zufällig dieselben Daten haben. Kyle Brandt vor 14 Jahren 0
0
dertoni

Ich denke, Sie könnten das, was Filemanager installiert hat, mit Ihrer Desktop-GUI verwenden, sofern eines vorhanden ist.

Wenn Sie mit der rechten Maustaste auf eine Datei oder ein Verzeichnis klicken, sollte ein Eintrag wie "Eigenschaften" oder ähnliches vorhanden sein. Daraufhin sollte ein Fenster angezeigt werden, in dem Sie die Rechte ändern und weitere Informationen anzeigen können.