Was bedeutet GID eigentlich?

Ich habe es gegoogelt und dies ist linux.about.com sagte:

Gruppenidentifikationsnummer für den Prozess. Gültige Gruppennummern finden Sie in /etc/group und im GID-Feld der Datei /etc/passwd. Wenn ein Prozess gestartet wird, wird seine GID auf die GID seines übergeordneten Prozesses gesetzt.

  • Aber was bedeutet das?

Die Berechtigungen, die ich für meinen Ordner habe, befinden sich derzeit unter 0755

Ich verstehe, wenn ich die UID für den Eigentümer festlege, ist sie 4755

Und wenn ich die GID der Gruppe einstelle, lautet sie 2755

If Ich habe das Sticky Bit für andere festgelegt. Es lautet 1755

  • Ist es überhaupt wichtig, diese Berechtigungen festzulegen?

Antwort

Jeder Prozess in einem UNIX-ähnlichen System hat wie jede Datei einen Eigentümer (der Benutzer, entweder real oder ein System „-Pseudo -user „, wie z. B. daemon, bin, man usw.) und eine Gruppe Inhaber. Der Gruppeneigentümer für die Dateien eines Benutzers ist normalerweise die primäre Gruppe dieses Benutzers. In ähnlicher Weise gehören alle von Ihnen gestarteten Prozesse normalerweise Ihrer Benutzer-ID und Ihrer primären Gruppen-ID.

Manchmal Es sind zwar erhöhte Berechtigungen erforderlich, um bestimmte Befehle auszuführen, es ist jedoch nicht wünschenswert, vollständige Administratorrechte zu erteilen. Beispielsweise benötigt der Befehl passwd Zugriff auf die Schattenkennwortdatei des Systems, damit Ihr Kennwort aktualisiert werden kann. Natürlich möchten Sie nicht jedem Benutzer Root-Berechtigungen erteilen. Nur damit sie ihr Passwort zurücksetzen können – das würde zweifellos zu Chaos führen! Stattdessen muss es eine andere Möglichkeit geben, Benutzern vorübergehend erhöhte Berechtigungen für die Ausführung bestimmter Aufgaben zu gewähren. Dafür sind die Bits SETUID und SETGID gedacht. Auf diese Weise kann der Kernel angewiesen werden, die Berechtigungen des Benutzers für die Dauer der Ausführung des markierten Befehls vorübergehend zu erhöhen. Eine SETUID-Binärdatei wird mit den Berechtigungen des Eigentümers der ausführbaren Datei ausgeführt (normalerweise root), und eine SETGID-Binärdatei wird mit den Gruppenberechtigungen des Gruppeneigentümers der ausführbaren Datei ausgeführt Datei. Im Fall des Befehls passwd, der zu root gehört und SETUID ist, können normale Benutzer den Inhalt des Kennworts direkt beeinflussen Datei auf kontrollierte und vorhersehbare Weise durch Ausführen mit Root-Rechten. Auf UNIX-ähnlichen Systemen gibt es zahlreiche andere SETUID -Befehle (chsh, screen, ping, su usw.), die alle erhöhte Berechtigungen erfordern, um ordnungsgemäß zu funktionieren. Es gibt auch einige SETGID -Programme, in denen der Kernel vorübergehend die GID des Prozesses ändert, um den Zugriff auf Protokolldateien usw. zu ermöglichen. sendmail ist ein solches Dienstprogramm.

Die sticky bit dient einem etwas anderen Zweck. Am häufigsten wird sichergestellt, dass nur das Benutzerkonto, das eine Datei erstellt hat, diese löschen darf. Denken Sie an das Verzeichnis /tmp. Es verfügt über sehr liberale Berechtigungen, mit denen jeder dort Dateien erstellen kann. Dies ist gut und ermöglicht es Benutzern „Prozessen, temporäre Dateien zu erstellen (screen, ssh usw., Statusinformationen in /tmp). Um die temporären Dateien eines Benutzers zu schützen, hat /tmp das Sticky-Bit gesetzt, sodass nur ich meine Dateien löschen kann und nur Sie lösche deine. Natürlich kann root alles, aber wir müssen hoffen, dass der Systemadministrator nicht gestört wird!

Für normale Dateien (dh für nicht ausführbare Dateien) macht es wenig Sinn, die SETUID festzulegen / SETGID-Bits. SETGID in Verzeichnissen auf einigen Systemen steuert den Standardgruppenbesitzer für neue Dateien, die in diesem Verzeichnis erstellt wurden.

Kommentare

  • Ah, super, danke Daher ist das Sticky Bit wie eine persönliche (Benutzer-) Erlaubnis? Diese Antwort war gut formuliert und verständlich.
  • Vielen Dank! Das Sticky Bit bietet einen kleinen Schutz für Dateien in einem Verzeichnis mit liberal Berechtigungen. Es ‚ ist nicht wirklich spezifisch für einen bestimmten Benutzer, da für alle Dateien das gleiche Schutzniveau gewährt wird, unabhängig davon, wer der Eigentümer ist. Es ‚ ist eine Möglichkeit, jedem das Erstellen von Dateien zu ermöglichen und sicherzustellen, dass nur der Eigentümer sie zerstören kann.
  • +1, D_bye, können Sie bitte ein Beispiel für das im Verzeichnis gesetzte setgid-Bit freigeben.Vielen Dank
  • @Ankit Unter Solaris (und mit ziemlicher Sicherheit auch anderen – ich verwende jedoch nur * BSD und Solaris). Wenn das setgid-Bit in einem Verzeichnis gesetzt ist, haben alle neuen Dateien, die unter diesem Verzeichnis erstellt wurden, dasselbe Gruppeninhaber als Verzeichnis selbst und erbt nicht die primäre Gruppe (des Benutzers, der den Erstellungsprozess ausführt).

Antwort

Ich denke, Sie meinen das“ SGID „-Bit einer Datei, das nicht mit der GID identisch ist.

Hier ist eine typische Datei auf meinem Computer (Ausgabe von ls -l):

-rw-r----- 1 bristol users 16 2012-07-23 11:36 file.txt abbbcccddd <-- See explanation below. 

Wenn Sie sich die ersten 10 Symbole ansehen,

(a) -: Dies ist nur eine einfache alte Datei (im Gegensatz dazu) zu einem Verzeichnis, Symlink, Pipe usw. …)

(b) rw-: Der Eigentümer kann diese Datei lesen und schreiben, aber nicht ausführen. Der Eigentümer ist „bristol“, wie Sie sehen können später in der Zeile.

(c) r–: Mitglieder der Gruppe, zu der diese Datei gehört („Benutzer“ im Beispiel), außer dem Eigentümer, können diese Datei lesen, aber nicht schreiben oder ausführen.

(d) —: A. Niemand sonst kann „überhaupt nicht auf diese Datei zugreifen (außer natürlich root).

Das GID-Feld gibt an, zu welcher Gruppe diese Datei gehört – in diesem Fall“ Benutzer „.

Das Feld, das Sie aufgrund Ihrer Beschreibung wahrscheinlich gemeint haben, ist das SGID-Bit, und hier ist eine bessere Erklärung, als ich mir vorstellen könnte:

http://www.codecoffee.com/tipsforlinux/articles/028.html

Die Kurzversion lautet: Wenn für eine ausführbare Datei das SGID-Bit gesetzt ist, dann für alle, die nicht in der Gruppe sind, aber Wenn Sie diese Datei vorübergehend ausführen können, erhalten Sie die Rechte dieser Gruppe, während das Programm ausgeführt wird.

Wenn Sie beispielsweise eine Gruppe „spool“ haben, die Dateien im Druckspooler-Verzeichnis lesen und schreiben kann, tun Sie dies nicht. “ Sie möchten nicht, dass nur jemand mit diesem Verzeichnis herumspielt, sondern dass er Dateien drucken kann. Sie können ein Druckprogramm oder ein Skript mit der Gruppe „spool“ erstellen und das SGID-Bit setzen. Wenn jemand dieses Programm startet, kann das Programm dies jetzt tun Schreiben Sie in das Spooler-Verzeichnis, ohne dass die Person ausgeführt wird es erhält vollen Zugriff.

Kommentare

  • Das ist gut, danke dafür. Ich verstehe den Berechtigungsteil (den abbbcccddd-Teil) – aber das wissen Sie 🙂
  • Ich habe gerade gesehen, dass meine Berechtigungen für den Ordner tmp drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp sind. Was bedeutet abbbcccddt (Buchstabe ‚ t ‚)? – Ich verstehe, dass “ d = Verzeichnis „, “ rwx = read, schreiben, ausführen „; Aber ich habe noch nie das ‚ t ‚ am Ende gesehen. { „6af1785a0d“>

. Im Folgenden finden Sie eine Erklärung, warum dies bei / tmp üblich ist.

Antwort

Die GID lautet wie folgt Sie haben die ID-Nummer einer Gruppe gefunden. Es ist einfach eine bequeme Möglichkeit für das Betriebssystem, die mit etwas (einem Prozess, einer Datei usw.) verknüpfte (Benutzer-) Gruppe auszudrücken. Anstelle einer möglicherweise langen Zeichenfolgenkennung kann diese als Nummer mit fester Größe ausgedrückt werden.

In einem Dateiberechtigungswert mit vier Oktalstellen (z. B. 0755) gibt die dritte Ziffer die Berechtigungen der Gruppe an Wenn Sie die erste Ziffer weglassen, ist dies die zweite Ziffer, die die Berechtigungen der Gruppe angibt. Beachten Sie, dass Dateien und Verzeichnisse in dieser Hinsicht gleich behandelt werden, die genaue Bedeutung der einzelnen Berechtigungsbits jedoch nicht stimmt -intuitiv bei Verzeichnissen.

Die beiden Konzepte hängen zusammen, dienen jedoch sehr unterschiedlichen Zwecken.

Was Ihre Frage betrifft, ist es überhaupt wichtig, diese Berechtigungen festzulegen? Sie werden immer auf etwas gesetzt, aber da in den meisten Fällen die Anfangsziffer 0 ist („nichts Besonderes“), wird sie der Kürze halber weggelassen. Ob Sie einen anderen Wert angeben müssen, hängt ganz davon ab das Verwendungsmuster für die betreffende Datei oder das betreffende Verzeichnis.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.