Ich versuche, /etc/network/interfaces
mit einem Benutzer zu schreiben , der keine Root-Rechte hat.
Der Grund dafür, dass Sie darauf schreiben möchten, besteht darin, dass der Benutzer eine statische IP festlegen kann, da ich nur einen Befehlszeilenserver ausführe. Welche Berechtigung muss ich dem Benutzer geben etc/sudoers
?
Ich möchte nicht, dass der Benutzer über vollständige Root-Berechtigungen verfügt. Nur die Möglichkeit, diese Datei zu bearbeiten.
permissions
user-management
Keith
quelle
quelle
/var/tmp/foo
=/etc/network/interfaces
? Ich habe noch nie gesehen, was Sie dort sagen wollen. Ich bin ziemlich neu in Linux.setfacl: /etc/logrotate.conf: Operation not supported
Bereiten Sie ein Skript vor, das die gewünschte Bearbeitung ausführt, z. B. ein Skript, das die richtige Datei mit der statischen IP-Adresse schreibt (was in dieses Skript eingefügt werden soll, fällt nicht in den Geltungsbereich dieser Fragen und Antworten). Nennen wir dieses Skript
/root/set_static_ip
. (1)Bearbeiten
/etc/sudoers
(2) (mitvisudo
ist besser, es prüft auf Vernunft, es ist sehr schwierig , ein System mit einer ungültigen Sudoers-Datei wiederherzustellen, sogar unmöglich von Remote (3)) und hinzufügenJetzt kann dieser Benutzer
sudo /root/set_static_ip
ohne Kennwort verwenden, und das Skript wird mit allen Berechtigungen ausgeführt. Es ist kein anderer Befehl zulässig.Wenn Sie möchten, dass der Benutzer eine Datei einfach durch eine beliebige ersetzt, kann das Skript einfach so sein (nennen Sie es
/root/unsafe-overwrite-interface
).... und Sie weisen den Benutzer an, zu bearbeiten
/tmp/temp-iface.txt
und dann auszuführensudo /root/unsafe-overwrite-interface
--- aktivieren Sie es in sudoers wie oben angegeben. Sie können den Benutzer auch zu einer ACL-Liste hinzufügen und ihm eine Schreibberechtigung für die jeweilige Datei erteilen .Beachten Sie jedoch, dass, wenn Sie den Dateiinhalt nicht auf Sicherheit prüfen , absichtlich oder unbeabsichtigt Chaos auftreten kann .
Fußnoten :
(1) Dieses Skript muss so sicher wie möglich sein. Überprüfen Sie die Eingänge und so weiter. Es wird mit vollen Berechtigungen ausgeführt.
(2) In der modernen Sudo-Installation können Sie eine Datei zum
/etc/sudoers.d/
Verzeichnis hinzufügen, die besser ist - sie überlebt Updates.(3) Normalerweise halte ich ein Terminal mit einer Root-Sitzung offen (
sudo -i
), wenn ich den Sudoers-Mechanismus ändere, und ein Backup zur Hand.quelle
/etc/network/interfaces
Datei grundsätzlich so umschreiben , wie es/root/set_static_ip
ist. Es sei denn, Sie können ein Skript erstellen, das den Benutzer auffordert, die IP-Adresse, das Gateway usw. einzugeben. Dafür bin ich nicht gut genug./etc/sudoers
ist esvisudo
nichtsudoedit
.