Wie kann sich ein Benutzer mit " su -
user " anmelden, ohne dass sich der Benutzer mit SSH anmeldet?
Ich habe versucht, die Shell auf zu setzen, /bin/false
aber wenn ich es versuche, su
funktioniert es nicht.
Gibt es mehrere Möglichkeiten, nur Anmeldungen über zuzulassen su
?
Ist SSH der richtige AllowUser
Weg? (Wie würde ich das machen, wenn es der richtige Weg wäre?)
su - -s /bin/bash user
Wenn su weiterhin funktionieren soll, können Sie su als temporäre Shell verwenden
sudo -u [username]
oder-s /bin/bash
an su übergeben. Sie tun dasselbe in Abwesenheit einer Muschel/etc/passwd
.quelle
Wenn ein Konto kein Kennwort hat ( passwd -d Benutzername ), können sie sich nicht interaktiv anmelden (Konsole, SSH usw.). Wenn sie eine gültige Shell haben, funktioniert su immer noch. Beachten Sie jedoch "interaktiv"; Wenn jemand beschließt, ein SSH-Schlüsselpaar für das Konto einzurichten, funktioniert es!
quelle
Fügen Sie in sshd_config eine Zeile hinzu
DenyUser [username]
Beachten Sie, dass dies den Benutzer nicht daran hindert, sich über die Konsole anzumelden.
quelle
DenyUsers
mit einem 's' sein.Zusätzlich zu den oben genannten Funktionen (Deaktivieren und / oder Nichteinstellen des Benutzerkennworts) kann das Modul pam_access (siehe Manpage unter pam_access und access.conf) zur Steuerung des Anmeldezugriffs verwendet werden.
quelle
wie andere gesagt haben;
DenyUser username
oderDenyGroup groupname
insshd_config
würde die Anmeldung mit Schlüsselpaar / Passwort über ssh verhindern.obwohl ich normalerweise so etwas mache
AllowGroup ssh
oder so, und explizit Leute hinzufüge, die SSH-Zugang zu dieser Gruppe benötigen.Sie können dann wie von anderen gesagt
passwd -d username
vorgehen, um das Benutzerpasswort auszublenden, damit sich die Benutzer nicht an der Konsole anmelden können, oder auf andere Weise. oder noch besserpasswd -l username
, um das Konto zu "sperren". Es ist möglich, dass ssh den Zugriff auf ein gesperrtes Konto verweigert, auch mit Schlüsseln, aber ich bin nicht positiv.quelle
Wie ich in einem Kommentar erwähnte, denke ich, dass Sie immer noch ein Konto mit einer ungültigen Shell aufladen können. Wenn Sie also die Shell des Benutzers auf / dev / null setzen oder was auch immer die Shell von bin ist, sollten Sie in der Lage sein, sich weiterhin in diesen Benutzer einzuloggen ... Aber jeder Versuch, sich auf irgendeine Weise anzumelden, beendet Sie wieder ...
quelle
editiere / etc / shadow durch Hinzufügen! an den Anfang des Passwort-Hashs.
Beim Sichern einer Neuinstallation ist dies das erste, was ich nach der Installation von sudo mache, damit sich niemand mit dem Root-Benutzer oder ssh im System anmelden kann. Sudo-Benutzer können weiterhin als Root-Benutzer ausgeführt werden.
quelle
Geben Sie kein Kennwort für den Benutzer an, der sich nicht anmelden oder löschen darf.
quelle
Angenommen, Sie möchten nur einen Benutzer aus dem Root-Konto su und alle anderen Zugriffe deaktivieren:
Verwenden Sie dies (als root ausführen):
Dadurch wird die Kennwortanmeldung deaktiviert (wie in vielen anderen Antworten empfohlen), aber das Konto läuft auch ab . Sie können sich nicht mit einem abgelaufenen Konto anmelden, z. B. mit SSH-Schlüsseln. Sie können es trotzdem
su user
, obwohl eine Meldung angezeigt wird, dass das Konto abgelaufen ist.quelle
Zu wissen, welcher Mechanismus am besten ist, hängt von den Anforderungen ab. Wenn Sie die Anforderungen kennen, können Sie den entsprechenden Mechanismus auswählen. Alle obigen Antworten gelten für eine Reihe von Anforderungen.
Möchten Sie nur den SSH-Zugriff einschränken? Benötigen Sie Zugriff für Mail- oder SSH-Methoden? Geht der Zugriff nur von root aus?
su - user
erfordert ein Kennwort für den Benutzer, wenn es von einem anderen Benutzer als root ausgeführt wird. Allerdingssudo -u user -i
erfordert kein Passwort für den Benutzer.quelle