Ich richte einen Server ein, auf den andere Leute über ssh auf sudo zugreifen können. Sie können Dinge installieren und Änderungen vornehmen, wie sie es für richtig halten. Ich muss jedoch noch den Server verwalten, Patches und Software-Updates installieren usw.
Ich frage mich, ob ich das Root-Passwort behalte, damit ich immer das tun kann, was ich brauche. Kann ich Menschen mit sudo irgendwie daran hindern, es mit sudo zu ändern?
Antworten:
Man muss so darüber nachdenken. Wenn Sie ihnen das Root-Passwort oder einen Weg dorthin geben, fragen Sie im Wesentlichen: "Wie kann ich ihnen Root geben, außer in all den Fällen, in denen ich nicht möchte, dass sie es haben?" Und die Antwort lautet: "Das können Sie nicht. Computer funktionieren nicht so."
quelle
Sie können bestimmte Befehle mit sudo selektiv zulassen, aber Sie müssen darauf achten, keine Programme zuzulassen, die den Shell-Zugriff, das Schreiben in Sym-Links oder eines von einigen Dutzend anderen Problemen ermöglichen. Hier ist eine Seite über sicheres Sudo-Scripting: http://www.kramse.dk/projects/unix/security-sudo-script_en.html
Man konnte immer hoffen, dass sie nichts über den Befehl chattr wissen ;-)
quelle
Ich denke, die Antwort hier hängt davon ab, ob Sie versuchen, sie daran zu hindern, das Passwort böswillig zu ändern, um Sie fernzuhalten, oder ob Sie das Passwort nur unachtsam erhalten, weil sie vergessen haben, dass Sie Zugriff benötigen. Im ersteren Fall werden Sie viel Ärger haben. Ich weiß nicht, unter welchen Umständen Sie Benutzern Root-Zugriff auf die Box gewähren würden, aber Sie sind dennoch besorgt darüber, aber das Beste, was Sie tun können, ist zu versuchen, ihren Zugriff auf Befehle über sudo zu beschränken, was, wie andere bereits erwähnt haben, bestenfalls schwierig ist. Im letzteren Fall scheint die Lösung darin zu bestehen, sich einen Benutzer mit Sudo-Berechtigungen zu erstellen. Niemand wird versehentlich das Passwort in Ihrem Konto ändern, damit Sie sich keine Sorgen machen müssen, dass jemand nur einen Fehler macht.
quelle
SELinux kann tun, wonach Sie suchen, obwohl es so ist, als würde man eine atomgetriebene Kampfaxt mit Atomantrieb verwenden, um eine Fliege zu schlagen, oder was auch immer das Zitat der Anhalterin tatsächlich ist. Wenn Sie auf Linux anstatt auf Solaris (und dessen glänzendem RBAC) eingestellt sind, besteht die am einfachsten zu implementierende Option wahrscheinlich darin, sudo so zu konfigurieren, dass nur die erforderlichen Befehle zulässig sind.
quelle
Es gibt einige Optionen:
Wie andere bereits betont haben, können sie durch Root-Zugriff absolut alles tun, was sie möchten, und wenn sie Sie wirklich aussperren möchten. Sie können. Die oben genannten Optionen machen es jedoch schwieriger oder weniger transparent für sie.
quelle
Solaris hat dieses Problem gelöst, indem root als "Rolle" festgelegt wurde, sodass niemand ein Root-Passwort hat und sich der Root-Benutzer nicht beim System anmelden kann. Um zu verhindern, dass Sie von jemandem ausgesperrt werden, gibt es viele fein abgestimmte Sicherheitsoptionen. Sie können also die meisten Root-Aufgaben mit "pfexec" (äquivalent zu sudo) erledigen, aber Sie können verhindern, dass sie Ihre sudo-Berechtigungen widerrufen.
[[Ich bin kein Solaris-Fan, aber es gibt einige sehr gute Dinge in Solaris außer ZFS und DTrace. Schade, wenn Orakel die Flamme löscht]]
quelle
Anstatt zu verhindern, dass sie das Passwort ändern, machen Sie es einfach zu einer Richtlinie, dass sie dies nicht dürfen. Dann können Sie so etwas wie auditd einrichten , um die Kennwortdatei zu überwachen und Sie über Änderungen zu informieren.
quelle
Was Sie wollen, ist nicht vernünftig. Wenn Sie Menschen in irgendeiner Form Wurzeln schlagen, können sie Ihr System zerstören. Selbst wenn ihr Zugang über stark reguliertes Sudo erfolgt, kann ein kluger oder böswilliger oder wirklich verrückter Idiot Chaos verursachen.
Du vertraust ihnen entweder oder nicht.
Wenn Sie ihre Bedürfnisse unterstützen und die Firma Sie dafür bezahlt, sie zu unterstützen, ist es ihre Maschine, nicht Ihre; Sie sind nur da, um es trotz aller dummen Dinge, die sie tun, am Laufen zu halten. Vielleicht können Sie Ihren Chef fragen, ob Sie den Kunden weniger Zugang gewähren können, nachdem sie es ein paar Mal geröstet haben, oder die Firma muss Sie weiterhin bezahlen, um das Chaos zu beheben. Was auch immer - es ist ihr Cent.
Wenn es Ihr Computer ist und Sie diesen anderen einen Gefallen tun, bitten Sie sie höflich, nett zu sein.
Das heißt - Sie können immer von einer CD (oder einem anderen schreibgeschützten Medium) booten. Sie können weiterhin die anderen Dateisysteme löschen oder über / etc mit ihrem eigenen / etc mounten, aber alles, was Sie tun müssen, um das System wieder auf ein rudimentäres Funktionsniveau zu bringen.
Sie können auch so etwas wie openvz verwenden und jedem Benutzer eine eigene Instanz geben. Sie können nicht das gesamte System auslöschen und ihre eigene Software in ihrem Slice installieren. Viele Orte verwenden dies für Webhosting, wo sie den Kunden "root" im VZ-Slice geben.
quelle
Wenn Sie mit RBAC kein System wie Solaris, HP-UX oder AIX verwenden können, können Sie RBAC unter Linux mit dem grsec- Patch implementieren .
quelle
Hier wird ein Benutzertyp für den Zugriff auf mittlerer Ebene benötigt. Ich denke, wenn ein Benutzertyp mit anpassbaren Berechtigungen (Standardzugriff plus einige der Root-Zugriffe) existieren würde, wäre es schön. Um zu verhindern, dass dieser Benutzer beispielsweise die Kennwortdatei ändert (da Linux auf Dateien basiert), können wir die Zugriffsberechtigungen für Kennwortdateien einschränken, da diese für diesen Benutzer nicht verfügbar sind. Geben Sie dann ein Kennwort für das BIOS ein, um zu verhindern, dass der Benutzer die Datei / etc / shadow mit einem bootfähigen Flash oder einer bootfähigen CD eines Drittanbieters ändert.
Das Obige ist nur eine Theorie für Linux-Entwickler und nicht sicher, ob es möglich ist ...
quelle
Verhindern Sie, dass sie ein Passwort ändern:
quelle
chattr -i /etc/shadow
mitsudo
und sind wieder im Geschäft.Es spielt keine Rolle, warum Benutzer Fragen stellen. Die Antwort "Sie können nicht" ist nicht wahr! Die Antwort ist tatsächlich unten auf der Seite "man sudoers" aufgeführt. Es heißt "Whitelist mit Ausnahme", und ich implementiere dies tatsächlich für das Unternehmen, für das ich arbeite. Folgendes tun Sie:
%testgroup ALL = (ALL) ALL
%testgroup ALL = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
%testgroup ALL = !/usr/sbin/visudo
Dies verhindert, dass die sudo-Benutzer das Root-Passwort ändern, aber alle anderen können geändert werden UND verhindert, dass sie die sudoers-Datei bearbeiten. Es gibt andere Dinge, die Sie wahrscheinlich hinzufügen sollten, z. B. das Verhindern, dass ein Benutzer die Gruppe ändert, in der er sich befindet, aber Sie verstehen hoffentlich das Wesentliche.
quelle
sudo vi /tmp/foo
dann:!/bin/bash
, dann , einen LKW durch Ihre oben genannten Regeln zu fahrenpasswd root
.sudo
, aber Sie werden nie es verwalten , indem sie alles-außer-der-aufgeführten-Ausnahmen zu tun. Es ist buchstäblich unmöglich.