Wir haben mehrere Benutzerkonten, die wir für automatisierte Aufgaben erstellen, für die differenzierte Berechtigungen erforderlich sind, z. B. für die Übertragung von Dateien zwischen Systemen, die Überwachung usw.
Wie sperren wir diese Benutzerkonten, damit diese "Benutzer" keine Shell haben und sich nicht anmelden können? Wir möchten verhindern, dass jemand als einer dieser Benutzeraccounts SSH ausführen kann.
/bin/false
scheint häufiger als/bin/true
.nologin
tatsächlich am/usr/sbin/nologin
nologin
/usr/local/bin/maybe
was/dev/urandom
zwischen diesen beiden ausgewählt. Vielleicht sollte ich es benutzen: DDas Ändern der Anmeldeshell verhindert nicht unbedingt die Authentifizierung der Benutzer (mit Ausnahme einiger Dienste, die prüfen, ob die Shell des Benutzers in erwähnt wird
/etc/shells
).Möglicherweise können sich die Benutzer weiterhin bei den verschiedenen Diensten authentifizieren, die Ihr System für Unix-Benutzer bereitstellt, und sind weiterhin berechtigt, einige Aktionen auszuführen, obwohl möglicherweise keine willkürlichen Befehle direkt ausgeführt werden.
Wenn Sie die Shell auf
/bin/false
oder/usr/sbin/nologin
ändern, wird nur verhindert, dass Befehle für die Dienste ausgeführt werden, mit denen Befehle ausgeführt werden können (Konsolenanmeldung, ssh, telnet, rlogin, rexec ...). Beeinflussen Sie daher die Autorisierung nur für einige Dienste.So
ssh
können sie beispielsweise weiterhin Portweiterleitungen durchführen.passwd -l
Deaktiviert die Kennwortauthentifizierung, der Benutzer kann jedoch möglicherweise andere Authentifizierungsmethoden verwenden (wieauthorized_keys
beissh
).Mit
pam
auf Linux zumindest, können Sie das verwendenpam_shells
Modul Authentifizierung oder Autorisierung für die Benutzer zu beschränken mit einer zulässigen Schale (diejenigen , die unter/etc/shells
). Fürssh
, sollten Sie es auf Zulassung (tunaccount
) Ebene als für die Authentifizierungsshd
verwendetpam
zusätzlich zu anderen Authentifizierungsmethoden (wieauthorized_keys
), oder Sie können es mit tunsshd_config
Richtlinien/etc/ssh/sshd_config
(wieAllowUsers
und Freunden).Beachten Sie jedoch, dass das Hinzufügen einiger Einschränkungen bei der globalen Pam-Autorisierung möglicherweise verhindert, dass
cron
Jobs als diese Benutzer ausgeführt werden.quelle
:|
Sie bearbeiten die
/etc/passwd
Datei und ändern die Benutzer-Shell von/bin/bash
oder/bin/sh
nach/sbin/nologin
quelle
vipw
welche, die diese Art von Fehler verhindern.Deaktivieren Sie zunächst das Passwort mit
passwd -l username
.Beachten Sie auch auf der
man
Seitepasswd
für die Option-l
:quelle
Sie können den Befehl chsh verwenden:
Geben Sie neue Shell-Details ein, wenn Sie dazu aufgefordert werden:
Oder kürzere Version:
quelle
Um zu verhindern, dass sich Benutzer über ssh anmelden und sogar authentifizieren, wodurch die Portweiterleitung aktiviert wird (wie hier beschrieben , Stephane), ändere ich den Benutzer so, dass er dem
nobody
Benutzer des Systems ähnlich ist :/etc/shadow
(mit*
oder!!
bei korrektem Feld)/etc/passwd
(zB/sbin/nologin
im richtigen Feld)/etc/passwd
(z. B./
im richtigen Feld)quelle