Wie kann ich meinen Benutzer einschränken, nur selektive Befehle auszuführen? Ich habe einen Benutzer tomc in der Gruppe tomc. Ich benötige diesen Benutzer, um sudo Benutzer zu sein und dann eingeschränkte Bash zu haben. Ich habe versucht , folgenden Code in /etc/sudoers
Datei, aber es funktioniert nicht als Benutzer in der Lage ist , andere Befehle auszuführen , wie mkdir
,rm
%tomc ALL=/bin/bash,/usr/bin/vim /*
sudo bash
entspricht in den meisten Fällen dem root-Passwort. Über einesudo bash
Shell können sie jeden Admin-Befehl ausführen, Software installieren oder löschen, Benutzer und Verzeichnisse löschen usw.Antworten:
Sie könnten dabei den falschen Weg gehen. Anstatt einem Benutzer eine 'eingeschränkte' Bash-Shell zu geben, sollten Sie ihm nur den Zugriff auf die Befehle gewähren, die er als root ausführen müsste. Zum Beispiel in Ihrer sudoers-Datei:
Seien Sie vorsichtig, wenn Sie Benutzern erlauben, vim als root auszuführen. Vim verfügt über eine Reihe integrierter Funktionen, z. B. Escape-Befehle in die Shell und die Möglichkeit, Befehle in Vim auszuführen. Abhängig von Ihrer Distribution stehen Ihnen möglicherweise zur
sudoedit
Verfügung. Dies funktioniert genauso wie ein normaler Vim, mit der Ausnahme, dass er für Shell-Fluchten und ähnliches ausgelegt ist.quelle
vim
können Sie beliebige Shell-Befehle ausführen. Und die zweite Zeile wird wahrscheinlich zulassenless /var/log/myapp/../../../etc/shadow
! Nach meinen Experimenten ist es schwer, sudo sicher zu benutzen ! Aber wenn Sie*
svermeidenundsudoedit
stattdessen verwenden könnenvim
, könnten Sie in Ordnung sein.*
ist nicht genug! Sobald Sieless
alsroot
Benutzer angemeldet sind, versuchen Sie, etwas einzugeben!tail /var/log/secure
. Wie fühlt sich das an? Studiere dasNOEXEC
Etikett. Aber nehmen Sie sich @ joeytwiddles Botschaft zu Herzen: Sudo-Sicherheit ist in der Tat schwer.Auf meiner Synology Diskstation, auf der DSM 6 ausgeführt wird, können nur Administratoren konsistent sshen (Nicht-Administratoren haben die Shell / sbin / nologin in / etc / passwd - Sie können dies auf / bin / sh setzen, um vorübergehend ssh zuzulassen, aber beim Neustart Die Datei / etc / passwd wird zurückgesetzt. Aus diesem Grund ist eine Art Sudo-Einschränkung für ein Konto erforderlich, das ansonsten nur zum Ausführen von z. B. / sbin / poweroff vorhanden ist. Die folgenden Zeilen in / etc / sudoers haben für mich funktioniert:
Übersetzung: Alle Befehle nicht zulassen, dann nur den gewünschten Befehl zulassen (in diesem Fall ohne Kennwortabfrage).
Mit dieser Konfiguration fragt sudo nach dem Passwort und schlägt dann bei Befehlen, die nicht auf der Whitelist stehen, fehl:
quelle