Erlaubt diese Sudo-Regel einem Benutzer, das System zu aktualisieren, und sonst nichts?

Erlaubt diese Sudo-Regel einem Benutzer, das System zu aktualisieren, und sonst nichts?

Ich möchte eine Sudo-Regel entwerfen, die es dem Benutzer ermöglicht, ricardodas System mit zu aktualisieren aptitude, ihn aber daran hindert, mit Sudo andere Befehle auszuführen (er ist ein Problembenutzer). Gibt es bei dieser Regel irgendwelche Fallstricke, die ich übersehen habe?

ricardo  ALL=(root) /usr/bin/aptitude

Ricardo verwendet nur aptitude, nicht apt-get. Außerdem habe ich Ubuntu momentan nirgends installiert, daher ist mir klar, dass dies /usr/bin/aptitudemöglicherweise nicht die genau richtige Datei ist, die zugelassen werden sollte.

Wenn diese Regel Fallstricke aufweist, wie kann ich sie verbessern?

Antwort1

Dieser Befehl verhindert, dass der Benutzer den Befehl aptitudefür andere Zwecke als die Aktualisierung des Repository-Cache und die Durchführung eines sicheren Upgrades des Systems verwenden kann.

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade

Mit einem ähnlichen Befehl kann der Benutzer ein vollständiges Upgrade durchführen, mehr jedoch nicht:

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude full-upgrade

Proaptitude-Dokumentation (10.04), safe-upgrade:

Aktualisiert installierte Pakete auf die neueste Version. Installierte Pakete werden nicht entfernt, es sei denn, sie werden nicht verwendet.

Im Gegensatz, full-upgrade:

Aktualisiert installierte Pakete auf die neueste Version und entfernt oder installiert Pakete nach Bedarf. Dieser Befehl ist weniger konservativ als Safe-Upgrade und führt daher eher unerwünschte Aktionen aus. Er kann jedoch Pakete aktualisieren, die Safe-Upgrade nicht aktualisieren kann.

Entscheiden Sie nach bestem Wissen und Gewissen, welche Aktionen der Benutzer ausführen darf. Wenn Sie sich nicht sicher sind, verwenden Sie die erste Regel, die nur zulässt safe-upgrade.

*Beachten Sie, dass Sie nach dem aptitudeBefehl ein einfügen müssen, wenn Sie einem Benutzer das Installieren von Paketen erlauben möchten (was die Sicherheit stark einschränkt, aber nur hypothetisch), d. h.

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade, /usr/bin/aptitude install *

Andernfalls erhalten Sie eine Fehlermeldung, dass der Benutzer ricardoden Befehl nicht ausführen darf /usr/bin/aptitude install <package_name>.

Antwort2

Sie können sudo -lsehen, welche Befehle ein Benutzer ausführen darf. So können Sie beispielsweise sehen, welche Befehle ricardo ausführen darf:

sudo -ll -U ricardo

um zu sehen, ob er Eignung ausführen kann,

sudo -ll -U ricardo /usr/bin/aptitude

Dadurch wird entweder der Befehlsname mit der Erweiterung „sudo“ gedruckt oder das Programm wird mit Code 1 beendet, wenn der Benutzer den Befehl nicht verwenden darf.

Dies sollte zu Ihrem Test auf jedem aktuellen Debian-basierten System funktionieren; die Syntax ist nicht Ubuntu-spezifisch.

Quelle:Mann sudo

Antwort3

Ich kann eigentlich nichts sehenfalschsudomit dieser sudoers-Zeile. Leider habe ich nicht so viel mit den Konfigurationseinstellungen von herumgespielt , daher ist mein Rat in diesem Fall möglicherweise nicht zuverlässig. Glücklicherweise habe ichdürfenIch gebe Ihnen nur eine Zeile, von der ich weiß, dass sie sicher ist:

ricardo ALL=/usr/bin/aptitude

Diese Zeile ermöglicht garantiert nur die Ausführung von ricardo aptitudeals Root, solange ricardo kein Mitglied einer sudo-fähigen Gruppe wie sudooder ist admin.

Quelle:8 Möglichkeiten zum Optimieren und Konfigurieren von Sudo unter Ubuntu - How-to Geek.

verwandte Informationen