Uid- und Gid-Beziehung zu Dateiberechtigungen

687
dumbitdownjr

Ich bin verwirrt darüber, welche Auswirkungen die UID oder GID auf die Fähigkeit eines Prozesses hat, eine Datei auszuführen. Ich habe den Abschnitt gelesen, den ich in APUE finden konnte, aber ich muss den Teil vermisst haben, in dem Stevens dies erklärt. Ich weiß, dass der Superuser eine ID von 0 hat und jede Datei ausführen kann, aber ich bin verloren, was mit bestimmten UID- oder GID-Nummern passiert. Ich bin auch nicht besonders sicher, ob uid oder gid relevant ist oder ob euid und egid die einzigen Dinge sind, die wichtig sind?

Dies ist zum Beispiel eine Frage, die wir im Unterricht bekommen haben:

Angenommen, ein Prozess mit der effektiven Benutzer-ID 4 und der effektiven Gruppen-ID 7 versucht, eine Datei mit der Benutzer-ID 4, der Gruppen-ID 9 und den Berechtigungen rw-rx - x auszuführen. Was wird passieren (und warum)?

Ich nehme an, da der Benutzer keine Schreibberechtigung hat, sollte der Prozess die Datei nicht ausführen können. Oder weil die UID und EUID gleich sind, kann der Prozess die Datei ausführen? Wo kommen die egid und gid dazu?

0

1 Antwort auf die Frage

0
dumbitdownjr

Ich denke, ich habe es herausgefunden. Wenn also die Euid mit der Benutzer-ID übereinstimmt und Benutzerausführungsberechtigungen erteilt werden, wird die Datei ausgeführt. Wenn der Befehl egid und gid übereinstimmt und das gid-Ausführungsbit gesetzt ist oder das andere Ausführungsbit gesetzt ist (es gibt keine andere zu prüfende ID, so dass das andere Ausführungsbit ausreicht), wird die Ausführung ausgeführt. Wenn nichts davon wahr ist, wird die Erlaubnis verweigert.

Im obigen Beispiel stimmt die Euid mit der UID überein, aber das Benutzerausführungsbit ist nicht gesetzt. Das Gruppenausführungsbit ist gesetzt, aber die egid passt nicht zur gid. Da jedoch ein anderes Ausführungsbit gesetzt ist, wird die Datei erfolgreich ausgeführt.