
Ich muss in einem Linux-System einen Benutzer mit Berechtigungen zum Installieren von Programmen erstellen, jedoch ohne Berechtigungen zum Zugriff auf die Verzeichnisse anderer Benutzer.
Ich habe versucht, Folgendes zu tun:
# Create restricted user user
adduser --home /home/restricted_user restricted_user
# Edit normal user dir permissions
chmod -R 700 /home/normal_user/
# Add restricted user to sudoers in order to allow program installation
sudo adduser restricted_user sudo
Dann habe ich versucht:
su restricted_user
sudo ls /home/normal_user
Und schließlich hat der eingeschränkte Benutzer Zugriff auf das Verzeichnis des normalen Benutzers, wenn er dies mit sudo tut
Wie kann ich diese Einschränkungen umsetzen?
Antwort1
Fügen Sie den Benutzer nicht hinzu zumsudo
Gruppe, gewähren Sie ihnen keinen allgemeinen Root-Zugriff. Bearbeiten Sie /etc/sudoers
und geben Sie eine kleine Anzahl ausführbarer Dateien an, die der Benutzer als Root ausführen kann. Beispiel:
# in sudoers file
restricted_user ALL = (root) /usr/bin/apt-get
restricted_user ALL = (root) /sbin/reboot
Anmerkungen:
- Abhängig von Ihrem Linux:
apt-get
/apt
,dpkg
,opkg
,pacman
,yum
, … - Verwenden Sie vollständige Pfade.
- Die richtige Art zu bearbeiten
sudoers
istvisudo
. man 5 sudoers
Weitere Informationen zur Syntax finden Sie unter .- Denken Sie beim Erstellen komplexerer Regeln an derenDie Reihenfolge ist wichtig.
Bedenken Sie, dass ein entschlossener Benutzer, der beliebige Programme installieren kann, in der Lage ist, einsetuidVersion von ls
oder „aktualisiert“ sudo
, die ihnen Root-Zugriff unabhängig von gewährt /etc/sudoers
. Oder stellen Sie ein Paket bereit und installieren Sie es, das bei der Installation beliebige Operationen ausführt (möglicherweise ohne tatsächlich etwas zu installieren). Dies zu verhindern, dürfte nicht einfach sein.