Ist es möglich, das Benutzersubsystem vollständig von Linux zu entfernen?
Ich spreche NICHT davon, zu verhindern, dass sich Personen anmelden. Ich spreche davon, die Teile des Systems zu entfernen, die sogar die Anmeldung ermöglichen.
Das Ergebnis ist ein Betriebssystem, auf das nach dem Booten niemals zugegriffen werden kann, da es keine Möglichkeit gibt, darauf zuzugreifen, abgesehen von Anwendungen, die bereits darauf ausgeführt werden (z. B. Webserver).
Das Ziel besteht darin, dass das System über keinen Mechanismus gehackt werden kann, für den ein Befehlszeilenzugriff auf Benutzerebene erforderlich ist, da kein Befehlszeilensystem auf Benutzerebene vorhanden ist.
root
, wie es die Antwort von @ Gravy impliziert?bash
, da viele Funktionen von ihnen abhängen. Das macht das Verhindern des "Befehlszeilenzugriffs" ziemlich schwierig.Antworten:
Dies ist eine interessante Unterscheidung:
Ich bin mir nicht ganz sicher, ob es tatsächlich etwas anderes als einen semantischen Unterschied gibt. Wenn ich entfernen
/bin/login
würde, könnten Sie sich nicht anmelden (am physischen Terminal), da ich die Anmeldung unmöglich gemacht hätte. Aber ich hätte nicht das gesamte Anmeldesubsystem entfernt.Mein Vorschlag wäre, so viel wie möglich intakt zu lassen, da es möglicherweise unvorhergesehene Abhängigkeiten gibt. Lassen Sie die Benutzer an Ort und Stelle, damit Ihr Webserver als anderes Konto als ausgeführt wird
root
. Verhindern Sie interaktive und nicht interaktive Anmeldungen, indem Sie das PAM-Subsystem ändern. Verhindern Sie optional densudo
Typzugriff auf ähnliche Weise.Bereiten Sie eine "abgelehnte" PAM-Definition vor
Erstellen Sie
/etc/pam.d/denied
mit den folgenden zwei Zeilen:Verhindern Sie Anmeldungen vom Terminal / Bildschirm
Durch
/etc/pam.d/login
eine Kopie von ersetzen/etc/pam.d/denied
Verhindern Sie Netzwerkanmeldungen mit
ssh
Durch
/etc/pam.d/sshd
eine Kopie von ersetzen/etc/pam.d/denied
Bearbeiten
/etc/ssh/sshd_config
und sicherstellen, dassUsePam yes
eingestellt ist.Optional deaktivieren Sie beim Versuch
sudo
Durch
/etc/pam.d/sudo
eine Kopie von ersetzen/etc/pam.d/denied
Anstatt alle Anmeldungen zu verweigern, ist es möglicherweise besser, Root-Anmeldungen vom physischen Terminal / Bildschirm aus zuzulassen und alles andere abzulehnen. Dies könnte auch über PAM erfolgen, liegt jedoch außerhalb des spezifischen Bereichs der Frage.
quelle
Theoretisch könnten Sie den
/bin/login
Befehl umbenennen / löschen .Ich bin mir nicht sicher, ob dies verhindern würde
single user mode
oder nicht. Auch nicht sicher, ob Sie verhindern wollensingle user mode
oder nicht.Sie könnten auch ein paar lustige Dinge damit machen
pam.d
, die alle Benutzeranmeldungen verhindern würden, aber das würde nur Benutzeranmeldungen verhindern und nicht die Idee von Anmeldungen zerstören.Wenn ich nach Hause komme, werde ich, wenn ich mich erinnere, eine virtuelle Maschine hochfahren und ausprobieren. Könnte auch die
/etc/shadow
Datei löschen , aber das könnte auch alles andere auffrischen.Randnotiz: Sie möchten die Idee der Benutzer nicht vollständig entfernen. Nicht weil es eine schlechte Idee ist, keine Anmeldefähigkeit zu haben (was es ist, aber das ist nicht der Punkt dieses Threads), sondern weil Benutzer aufgrund von Berechtigungen existieren müssen. Ohne Benutzer möchten Sie Erteilung gezwungen werden ,
rwx
auf alle Dateien auf dem System , um für Ihren Dienst zu laufen, die dann auf das Problem der nicht dazu führen würden , um zu Anmelden, um Dinge zu hacken, konnten die Menschen nur Zugang , was sie wollten.quelle