Richtige Syntax für den Befehl „id -r“

Richtige Syntax für den Befehl „id -r“

Ich versuche herauszufinden, ob id -rdie UID oder der Benutzername des Benutzers, der sich beim System angemeldet hat, trotz aller su's oder sudo's ausgedruckt wird. Ich bin daran interessiert, dies zu tun, damit ich die Leute etwas stärker zur Verantwortung ziehen und die Skriptfunktion entsprechend anpassen kann (d. h.: Sie geben ein sudo für ein Skript aus und es ruft Informationen aus dem Home-Verzeichnis des angemeldeten Benutzers ab).

Mir sind sudoSets klar SUDO_USER, aber ich möchte mich nicht darauf verlassen, weil es eine Variable ist, die vom Benutzer geändert werden kann, und sie enthält nur den Benutzernamen des Benutzers, der das letzte Sudo ausgeführt hat (d. h. es wird sudo -i ; sudo -iu randomUser ; echo $SUDO_USER„root“ statt des tatsächlichen Benutzers ausgegeben).

Weder in den Manpages noch in dem, was ich online finden kann, scheint ein Hinweis auf die ordnungsgemäße Verwendung dieses Befehls zu sein, und die offensichtlichen Permutationen funktionieren nicht:

[root@ditirlns03 ~]# id -r
id: cannot print only names or real IDs in default format
[root@ditirlns03 ~]# id -r jadavis6
id: cannot print only names or real IDs in default format
[root@ditirlns03 ~]# id -r root
id: cannot print only names or real IDs in default format

An diesem Punkt bin ich mir noch nicht sicher, id -rob das ausgedruckt wird, was ich möchte, vor allem, weil ich nicht herausfinden kann, wie ich es dazu bringe, überhaupt etwas auszudrucken.

Antwort1

-rmuss in Verbindung mit einer anderen Option verwendet werden. Beispiel:

$ id -Gr
1000 4 24 27 30 46 109 124

Zitat aus der Manpage:

-r, --real
print the real ID instead of  the  effective  ID,  with -ugG

Antwort2

Das Programm und die Dokumentation weichen von den Standardverfahren ab:

Wenn -ugGtatsächlich bedeutet -u|g|G[modifier](was es anscheinend tut), dann sollte es so dokumentiert werden. Die Autoren schienen nicht der Meinung zu sein, dass es den Aufwand wert war. Wenn der Benutzer jedoch dasselbe tut (wie Herr Davis es ganz vernünftigerweise versucht hat):

-ru, eine legitime, intuitive Annahme, gibt einen Fehler zurück.

Apropos dieser Tipp:

stat -c "%U" $(tty)

Wahrscheinlich hätte es geholfen, zu erwähnen, dass es Shell-spezifisch ist.

Antwort3

  • Drucken der Benutzer-ID:id -u
  • Ausdrucken des Benutzernamens:id -u -n

Versuchen Sie, man idsich mehr zu neigen.

verwandte Informationen