Gibt es eine Möglichkeit, su nur für bestimmte Benutzer zuzulassen (wie die Verwendung von visudo für sudo)?
Der Grund dafür ist, dass ich ein einfaches (schwaches) Passwort für mein Root-Konto behalten möchte und Konten habe, mit denen sich su / sudo nur mit einem Pub / privaten Schlüssel am Computer anmelden kann.
Dann könnten alle anderen Konten nicht als root oder als Konto su su.
/etc/login.defs
und setzen SieSU_WHEEL_ONLY
aufyes
.Ein schwaches Passwort für root ist dumm, unabhängig von den Steuerelementen auf 'su'. Selbst wenn sich Benutzer 'root' nur an einer Konsole in einem eingeschränkten Maschinenraum anmelden kann, würde ich Benutzer 'root' nicht erlauben, ein schwaches Passwort zu haben.
Ich würde vorschlagen, 'su' vollständig zu deaktivieren und 'sudo' für alles zu verwenden. Mit Deaktivieren meine ich Folgendes:
rm -f /bin/su
).chmod o-x /bin/su
oderchmod go-x /bin/su
).chmod u-s /bin/su
).Das verbleibende Problem beim Deaktivieren von 'su' durch Entfernen oder Entfernen von Berechtigungsbits besteht darin, dass einige Systemskripte davon abhängen können, ob
su
sie vorhanden sind. Es gibt keine besonders saubere Lösung dafür - aber es gibt im Allgemeinen nur wenige, da 'su' zur Eingabe eines Kennworts auffordert und Eingabeaufforderungen in Skriptumgebungen nicht beliebt sind. Das andere Mal, wenn 'su' verwendet wird, führt 'root' den Befehl aus, um ein anderer Benutzer zu werden. Dies wird durch Entfernen des Setuid-Bits unterstützt (Benutzer root kann es ausführen, aber niemand anderes kann dies sinnvoll tun). Sie können dies verstärken, indem Sie die öffentliche und möglicherweise auch die Gruppenausführungsberechtigung entfernen (chmod u-s,go-rwx /bin/su
).Wenn Sie keines der systemspezifischen Mittel verwenden, seien Sie sehr vorsichtig. Testen Sie dies, bevor Sie es in Produktion nehmen.
quelle
Wenn Ihr System PAM verwendet, können Sie es
su
ordnungsgemäß deaktivieren , indem Sie Folgendes eingeben/etc/pam.d/su
:quelle
Unter FreeBSD dürfen nur Benutzer der Gruppe 'Rad'
su
.Welches Betriebssystem verwenden Sie?
quelle
Sie können die
/etc/sudoers
Datei bearbeiten, um zu steuern, wer sie verwenden kannsudo
und was sie tun können. Wenn Sie Programme zulassen, die eine Shell erzeugen können (Shell-Escapezeichen), kann ein Benutzer alles tun.Weitere Informationen finden Sie auf der
man
Seitesudoers
.quelle
Zunächst einmal ist su und sudo ein völlig anderer Befehl.
Mit sudo können Sie einen einzelnen Befehl als Root ausführen (oder einen anderen Benutzer, falls angegeben), wobei das Verhalten von / etc / sudoers gesteuert wird .
su führt eine Shell als Root aus (oder einen anderen Benutzer, falls angegeben).
Was ich Ihnen empfehlen kann - hinterlassen Sie ein sicheres Root-Passwort und platzieren Sie alle Benutzer, die Root-Rechte benötigen, in / etc / sudoers (siehe diesen Artikel).
Die andere, weniger empfohlene Idee ist die Verwendung eines su-Wrapper-Skripts.
quelle
Abhängig davon, welche Authentifizierung Ihr Computer verwendet, können Sie /etc/pam.d/su bearbeiten. Wenn Ihr System pam nicht verwendet, können Sie eine Datei / etc / suauth mit den Regeln für die Benutzer oder Gruppen erstellen, die Zugriff auf su haben als Wurzel.
quelle
Ich möchte nur wiederholen, was andere versucht haben zu sagen, was ich nicht ganz sicher bin, ob Sie es verstanden haben. Wenn Sie den Zugriff auf den Befehl su für alle Benutzer deaktivieren, kann kein Benutzer, selbst wenn er über eine eigene Kopie von su verfügt, zu einem anderen Benutzerkonto wechseln. Dies liegt daran, dass für den Befehl su das Root-Suid-Bit gesetzt sein muss, damit der Benutzer, der versucht, den Befehl auszuführen, seine UID ändern kann. Es wäre viel besser, ein sehr starkes Root-Passwort zu haben, den Befehl su für alle Benutzer zu deaktivieren und den Benutzern, für die Sie Root-Rechte haben möchten, Sudo-Zugriff zu gewähren.
Es hört sich so an, als hätten Sie Angst davor, dass Personen mit Sudo-Zugriff ihr Passwort mit anderen Benutzern teilen und ihnen auch Root-Zugriff gewähren. Dies ist wirklich ein Problem, das Sie nicht lösen können. Der privilegierte Benutzer kann ihn jederzeit an seinem Computer sitzen lassen, wenn Sie auch öffentliche / private Schlüssel eingerichtet haben. Es kommt darauf an, dass Sie einem Benutzer nur Administratorrechte erteilen können, wenn Sie diesem Benutzer vertrauen.
quelle
Ja. chmod su auf 700 und fügen Sie alle Personen, die Sie verwenden möchten, in die Stammgruppe in / etc / group ein. Die Verwendung von sudo ist jedoch mit ziemlicher Sicherheit eine bessere Idee.
quelle