Verwenden Sie su, um zu einem lokalen (gegenseitig vertrauenswürdigen) Benutzer ohne Kennwort zu wechseln.

3

Ich bin neugierig, ob es eine Möglichkeit gibt, einem Benutzer zu ermöglichen, sich (über su) bei einem anderen Benutzer anzumelden, ohne dass er das Kennwort des Benutzers kennen muss. Wenn ich zum Beispiel als Benutzer1 angemeldet bin, möchte ich Benutzer2 die Berechtigung geben, sich bei mir anzumelden, aber aus irgendeinem Grund kann er das Kennwort nicht kennen. Angenommen, der Grund ist, dass ich eine zufällige Zeichenfolge aus 20 Groß- / Kleinbuchstaben / Zahlen verwende. Zur Verdeutlichung möchte ich nicht nur auf die Dateien dieses Benutzers zugreifen, sondern vollständig als dieser Benutzer angemeldet sein.

Über ssh ist das ganz einfach, ich schnappe mir seinen öffentlichen Schlüssel und stecke ihn in .ssh /

Wenn user1 root ist, ist das ganz einfach. Ich gebe NOPASSWD nur in sudoers Zugriff.

Vielleicht lautet die Lösung: Verwenden Sie dazu ssh. Aber das ist unelegant, nicht wahr? Und es scheint sehr unwichtig, wenn dies nur für root möglich ist, aber niemand, der weniger wichtig ist als root.

Extra Punkte: Kann dies eingerichtet werden, ohne dass root derjenige ist, der es einrichtet? Wiederum löst die ssh-Lösung dieses Problem, jedoch unelegant.

wdahab
quelle

Antworten:

1

Wie wird ein öffentlicher SSH-Schlüssel "inelegant" eingerichtet? Ich würde sagen, dass dies der richtige Weg ist und kein Root-Zugriff erforderlich ist. hängen Sie einfach den öffentlichen Schlüssel von user2 an ~user1/.ssh/authorized_keys. Wenn Benutzer2 im System angemeldet ist, kann er einfach eingeben ssh user1@localhost ohne nennenswerten Netzwerkaufwand.

Sie könnten auch konfigurieren /etc/sudoers damit user2 laufen kann sudo su user1 und / oder sudo su - user1 ohne ein Passwort einzugeben. (Dies bringt keine zusätzlichen Punkte, da für die Konfiguration Root-Zugriff erforderlich ist /etc/sudoers.)

Keith Thompson
quelle
1
Es ist meiner Meinung nach nicht relevant, weil es ein Netzwerkprotokoll verwendet, um einen Benutzerwechsel zu bewirken. Ich denke, mein Gedanke ist, dass, wenn ssh die elegante Art ist, Benutzer zu wechseln, was der Sinn ist, sogar su zu haben, um Benutzer zu wechseln?
wdahab
1
@wdahab: Zum einen su ist älter als beides ssh oder sudo. su ist notwendig, weil es funktioniert, auch wenn das Netzwerk nicht funktioniert (auch auf Systemen, die so alt sind, dass sie kein Netzwerk haben). Aber es ist unwahrscheinlich, dass eine Netzwerkverbindung besteht localhost wird scheitern - und sudo su tut etwas Ähnliches, ohne das Netzwerk zu benutzen. Persönlich würde ich mir einfach keine Sorgen um die Ineleganz machen.
Keith Thompson