Próbuję pisać /etc/network/interfaces
z użytkownikiem, który nie ma uprawnień roota.
Powodem, dla którego chciałbym do tego pisać, było umożliwienie użytkownikowi ustawienia statycznego adresu IP, ponieważ uruchamiam serwer tylko z linii poleceń. Jakie pozwolenie muszę dać użytkownikowi etc/sudoers
?
Nie chcę, aby użytkownik miał pełne uprawnienia root. Tylko możliwość edycji tego pliku.
permissions
user-management
Keith
źródło
źródło
/var/tmp/foo
=/etc/network/interfaces
? Nigdy tak naprawdę nie widziałem tego, co próbujesz powiedzieć, jestem całkiem nowy w Linuksie.setfacl: /etc/logrotate.conf: Operation not supported
Przygotuj skrypt, który chcesz edytować, na przykład skrypt, który zapisuje poprawny plik ze statycznym adresem IP (co należy umieścić w tym skrypcie jest poza zakresem tego pytania i odpowiedzi). Nazwijmy ten skrypt
/root/set_static_ip
. (1)Edytuj
/etc/sudoers
(2) (zvisudo
lepszym, sprawdza zdrowie psychiczne, bardzo trudno jest odzyskać system z nieprawidłowym plikiem sudoers, nawet niemożliwym ze zdalnego (3)) i dodaćTeraz ten użytkownik może korzystać
sudo /root/set_static_ip
bez pytania o hasło, a skrypt będzie działał ze wszystkimi uprawnieniami; żadne inne polecenie nie będzie dozwolone.Jeśli chcesz, aby użytkownik po prostu zastąpił plik tym, czego chce, skrypt może być po prostu (nazwij go
/root/unsafe-overwrite-interface
)... a ty każesz użytkownikowi edytować,
/tmp/temp-iface.txt
a następnie uruchomićsudo /root/unsafe-overwrite-interface
--- włączając go w sudoersach, jak określono powyżej. Możesz też dodać użytkownika do listy ACL i dać mu uprawnienia do zapisu w określonym pliku .Ale zauważ, że jeśli nie sprawdzisz zawartości pliku pod kątem bezpieczeństwa, nastąpi spustoszenie , celowe lub niezamierzone.
Przypisy :
(1) ten skrypt musi być możliwie bezpieczny. Sprawdź dane wejściowe i tak dalej. Zostanie wykonany z pełnymi uprawnieniami.
(2) w nowoczesnej instalacji sudo, możesz dodać plik do
/etc/sudoers.d/
katalogu, który jest lepszy --- przetrwa aktualizacje.(3) Zwykle trzymam terminal z otwartą sesją roota (
sudo -i
), kiedy modyfikuję mechanizm sudoers, i mam pod ręką zapasową kopię zapasową.źródło
/etc/network/interfaces
plik na dowolny format/root/set_static_ip
. Chyba że możesz stworzyć skrypt, który prosi użytkownika o podanie adresu IP, bramy itp. To nie jest wystarczająco dobre./etc/sudoers
to, tovisudo
niesudoedit
.