chmod g+s .;
Dieser Befehl legt die Gruppen-ID (setgid) für das aktuelle Verzeichnis fest .
.
Dies bedeutet, dass alle neuen Dateien und Unterverzeichnisse, die im aktuellen Verzeichnis erstellt wurden, die Gruppen-ID des Verzeichnisses und nicht die primäre Gruppen-ID des Benutzers erben, der die Datei erstellt hat. Dies wird auch an neue Unterverzeichnisse weitergeleitet, die im aktuellen Verzeichnis erstellt wurden.
g+s
wirkt sich auf die Gruppen-ID der Datei aus, jedoch nicht auf die Eigentümer-ID.
Beachten Sie, dass dies nur für neu erstellte Dateien gilt. Dateien, die in das Verzeichnis verschoben ( mv
) werden, sind von der Einstellung setgid nicht betroffen. Dateien, mit denen kopiert wird, cp -p
sind ebenfalls nicht betroffen.
Beispiel
touch un;
chgrp canard .;
chmod g+s .;
touch deux ;
In diesem Fall deux
wird zur Gruppe gehören, canard
aber un
wird zur Gruppe des Benutzers gehören, der es erstellt, was auch immer das ist.
Kleine Anmerkung zur Verwendung von Semikolons in Shell-Befehlen
Im Gegensatz zu c
oder perl
muss auf einen Shell-Befehl nur ein Semikolon folgen, wenn in derselben Befehlszeile ein anderer Shell-Befehl darauf folgt . Betrachten Sie daher die folgende Befehlszeile:
chgrp canard .; chmod g+s .;
Das letzte Semikolon ist überflüssig und kann entfernt werden:
chgrp canard .; chmod g+s .
Wenn wir die beiden Befehle in separaten Zeilen platzieren, wird das verbleibende Semikolon nicht benötigt:
chgrp canard .
chmod g+s .
cp
), werden tatsächlich neu erstellt. Wenn sie die Gruppenberechtigung nicht erben, spielt das Kopierprogramm Spiele ab, z. B. das Kopieren in eine temporäre Datei und das anschließende Verschieben in das Zielverzeichnis.cp -p
die setgid-Einstellung überschreibt.cp -p
überschreibt die Setgid-Einstellung? Auf jeder existierenden Unix-Implementierung? POSIX gibt an, dass nicht angegeben ist, ob ein Fehler beim Kopieren der Benutzer- oder Gruppen-ID unter cp -p zu einer Diagnosemeldung führt! In diesem Fall müssen jedoch die Bits S_SUID und S_SGID gelöscht werden (dh, wenn eine Datei setuid bob ist, der Besitz von bob jedoch nicht kopiert werden kann, sodass die Datei janet gehört, darf sie nicht setuid sein Janet.)cp -p
msgstr " überschreibt die setgid Einstellung?" Nach der POSIX-Spezifikation soll dies geschehen. Dies geschieht auf allen von mir verwendeten Unix-Systemen. Sie haben den Teil der Spezifikation in Bezug auf Maßnahmen zum Schutz der Sicherheit für den Fall zitiert, dass die Gruppen-ID nicht dupliziert werden kann. Ich bin noch nie in eine solche Situation geraten, oder?Sie können die Dateiberechtigungen mit dem Befehl chmod ändern. In Unix werden Dateiberechtigungen, die festlegen, wer möglicherweise über unterschiedliche Zugriffsarten auf eine Datei verfügt, sowohl von den Zugriffsklassen als auch von den Zugriffstypen angegeben. Zugriffsklassen sind Gruppen von Benutzern, denen jeweils bestimmte Zugriffstypen zugewiesen werden können
Unix / Linux verfügt über Benutzer und Benutzergruppen, die für den Dateizugriff zugewiesen werden können
Die Optionen g + s lauten wie folgt:
g - die Berechtigungen, die andere Benutzer in der Gruppe der Datei dafür haben
s - Benutzer- oder Gruppen-ID bei der Ausführung festlegen
Hier ist ein Anwendungsbeispiel:
(Jeder kann eine bestimmte Datei lesen, schreiben und ausführen und die eingestellte Gruppen-ID aktivieren.)
Um die Berechtigungen einer Datei festzulegen / zu ändern, müssen Sie das Programm chmod verwenden. Natürlich darf nur der Eigentümer einer Datei chmod verwenden, um die Berechtigungen einer Datei zu ändern. chmod hat die folgende Syntax: chmod [options] mode file (s) Der 'mode'-Teil gibt die neuen Berechtigungen für die Datei (en) an, die als Argumente folgen. Ein Modus gibt an, welche Berechtigungen des Benutzers geändert werden sollen und welche Zugriffstypen anschließend geändert werden sollen. Sagen wir zum Beispiel: chmod axe socktest.pl
Dies bedeutet, dass das Ausführungsbit für alle Benutzer gelöscht werden sollte (-). (Eigentümer, Gruppe und der Rest der Welt) Die Berechtigungen beginnen mit einem Buchstaben, der angibt, welche Benutzer von der Änderung betroffen sein sollen. Dies kann einer der folgenden sein:
Darauf folgt eine Änderungsanweisung, die aus einem + (gesetztes Bit) oder - (gelöschtes Bit) und dem Buchstaben besteht, der dem zu ändernden Bit entspricht. Sehen wir uns einige Beispiele an:
Merkwürdige Zahlen ... Möglicherweise sind Sie auf etwas wie chmod 755 gestoßen, und Sie werden sich natürlich fragen, was das ist. Die Sache ist, dass Sie das gesamte Berechtigungsmuster einer Datei auf einmal ändern können, indem Sie eine Nummer wie in diesem Beispiel verwenden. Jeder Modus hat eine entsprechende Codenummer, und wie wir sehen werden, gibt es eine sehr einfache Möglichkeit, herauszufinden, welche Nummer einem Modus entspricht. Jede der drei Ziffern der Modusnummer entspricht einem der drei Berechtigungstripel. (u, g und o) Jedes Berechtigungsbit in einem Triplet entspricht einem Wert: 4 für r, 2 für w, 1 für x. Bei dem Berechtigungsbit addieren Sie diesen Wert zur Nummer des Berechtigungs-Triplets. Wenn es gelöscht ist, fügen Sie nichts hinzu. (Einige von Ihnen könnten feststellen, dass in der Tat,
755 ist also eine knappe Möglichkeit zu sagen: "Es macht mir nichts aus, wenn andere Leute diese Datei lesen oder ausführen, aber nur ich sollte sie ändern können." 777 bedeutet: "Jeder hat vollen Zugriff auf diese Datei."
Perfekte Referenz
quelle
Das Ergebnis des Befehls ls hängt von umask ab.
g + s setzt sgid auf die Datei. Überprüfen Sie hier , um weitere Informationen zu tief SUID SGID
Wenn Ihre Umask zum Beispiel 022 ist, wird das Ergebnis ungefähr so aussehen:
quelle
In Linux eine der Standard-Mount-Optionen für ext? fs ist 'nogrpid | sysvgroups '. Beim ersten Berühren von un wird eine Datei mit der Gruppen-ID fsgid des Erstellungsprozesses erstellt, wobei fsgid = egid ist.
chmod g + s. bewirkt, dass die nachfolgende Datei- / Verzeichniserstellung die Gruppen-ID aus dem übergeordneten Ordner übernimmt. Wenn das erstellte Objekt ein Verzeichnis ist, wird g + s ebenfalls als übergeordnetes Element festgelegt.
Hier berühren Sie Deux, erstellt Deux mit Gruppen-Canard.
Die Semantik ändert sich, wenn die Mount-Option 'grpid | In diesem Fall würde die neue Datei- / Verzeichniserstellung die Gruppen-ID aus dem übergeordneten Ordner erben, auch ohne g + s für das übergeordnete Element selbst festzulegen.
quelle