Kontext
Ich arbeite gerne in der Öffentlichkeit an meinem Laptop, aber ich benutze sudo auch gerne ohne Passwort. Nach dem, was ich jetzt weiß, würde ich die NOPASSWD
Option in meiner sudoers
Datei verwenden, aber natürlich kann jeder sudo verwenden, wie er möchte.
Ein wichtiger Gedanke , der mir in den Sinn kommt, ist, dass Sperrprogramme existieren. Ich würde es jedoch vorziehen, ein Flash-Laufwerk zu verwenden (und es nur für sudo zu verwenden), da (1) es schneller ist, (2) einfacher als mein Passwort einzugeben ist und (3) ich mich nicht mit Personen befasse, die auf meine Inhalte zugreifen oder schändlich handeln Dinge: Der Laptop wäre in der Öffentlichkeit für andere Menschen, und das einzige geistige Eigentum an meinem Laptop ist ein sehr einfaches Angular-Projekt.
Darüber hinaus möchten ich und andere möglicherweise den Missbrauch von sudo auf einem Computer verhindern, auf dem keine X- oder Wayland-Umgebung ausgeführt wird. Meine aktuelle Arbeit erfordert einen modernen Webbrowser, aber wenn ich jemals die Möglichkeit habe, X nicht zu verwenden und nur einen Multiplexer zu verwenden, mache ich das - mein Laptop ist etwas alt und langsam.
Frage
Was ich tun möchte, ist, eine Schlüsseldatei auf ein Flash-Laufwerk zu legen und das Flash-Laufwerk einfach anzuschließen, wenn ich am Laptop bin, und es herauszunehmen, wenn ich mich von ihm entferne.
Hier sind meine drei Fragen, die sich aus diesem Problem ergeben:
- Ist das mit sudo so wie es ist möglich?
- Wenn nicht, könnte ich ein Programm schreiben, mit dem ich dies tun kann?
- Wenn ja, welche Sprache ist möglicherweise die beste, um dieses Programm zu schreiben?
(4. [Vielleicht eine irrelevante Frage] Könnte dieses Paket separat sein oder müsste es eine Gabel aus Sudo sein?)
Hinweis
Wenn es relevant ist, ist mein Setup Arch Linux mit bspwm, keine Desktop-Umgebung. Der größte Teil meiner Arbeit ist die Webentwicklung in urxvt / vim und die Überprüfung mit Chrome.
rootpw
Flag in den/etc/sudoers
Dateien verwenden und diepam_usb
Root-Anmeldung einrichten.Antworten:
Ich bin mir nicht sicher, ob ich verstehe, warum die
NOPASSWD
Option Ihre Anforderungen nicht von alleine erfüllt, aber wenn Sie das Vorhandensein des Flash-Laufwerks benötigen möchten, kann ich mir etwas vorstellen, das fast das tut, wonach Sie suchen.Dies ist eher eine Problemumgehung, aber Sie können beispielsweise einen lokalen Administrator erstellen
superuser
und diesem Benutzer kennwortlosesudo
Rechte erteilen , dh der/etc/sudoers
Datei die folgende Zeile hinzufügen :Sie können dann die Kennwortanmeldung deaktivieren und die Nur-Schlüssel-SSH-Authentifizierung für diesen Benutzer konfigurieren, dh
passwd -l superuser
die folgende Zeilengruppe ausführen und zu Ihrer hinzufügen/etc/ssh/sshd_config
:Erstellen Sie dann ein SSH-Schlüsselpaar für diesen Benutzer. Fügen Sie den öffentlichen Schlüssel hinzu
/home/superuser/.ssh/authorized_keys
und legen Sie den privaten Schlüssel auf Ihrem Flash-Laufwerk ab. Wenn Sie dassuperuser
Konto verwenden möchten, schließen Sie Ihr Flash-Laufwerk und sshsuperuser
mit Ihrem privaten Schlüssel an das Konto an. Und voilà! Sie haben jetzt passwortlossudo
für Ihren Benutzer. Natürlich müssen Sie Ihre Shell-Sitzungen immer noch beenden, wenn Sie fertig sind - das Herausziehen des Flash-Laufwerks reicht nicht aus. Obwohl ich denke, Sie könnten auch einen Vorbefehlshook einrichten , um nach dem privaten Schlüssel zu suchen und ihn automatisch zu beenden , wenn er nicht vorhanden ist (oder wenn er ungültig ist).quelle