Od użytkownika root, w jaki sposób mogę zezwolić innemu użytkownikowi na wykonanie pliku /root/script.sh?
Chodzi o to, aby uruchomić skrypt jak sudo -u user1 /root/script.sh
su(1)
Od użytkownika root, w jaki sposób mogę zezwolić innemu użytkownikowi na wykonanie pliku /root/script.sh?
Chodzi o to, aby uruchomić skrypt jak sudo -u user1 /root/script.sh
su(1)
Odpowiedzi:
Użytkownik musi mieć
wykonać uprawnienie dla całej ścieżki katalogu ( /root
tylko tutaj )
wykonać uprawnienie do pliku
uprawnienia do odczytu pliku
Dobrym pomysłem może być pozostawienie /root
nietkniętego i utworzenie (lub użycie) innego katalogu do tego celu (np /usr/local/bin
.). Możesz uczynić user1
jedynego użytkownika, który może wykonać skrypt, czyniąc go właścicielem pliku lub pozostawić root
jako właściciela i grupę, ustawić proste uprawnienia dostępu ( chmod
) 770
i dodać za user1
pomocą ACLs ( setfacl
).
Jeśli twój skrypt znajduje się w katalogu głównym, to
$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar 5 20:14 /root
user1
może być tylko rootem.
Twój /etc/sudoers
wpis będzie wyglądał
Cmnd_Alias SCRIPT=/root/script.sh
# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT
Zwykle edytujesz plik przy pomocy visudo
Nie musisz też poddawać -u root
się sudo
dowodzeniu.
%
Oznacza grupę użytkownika. Po pominięciu tej opcji tylko użytkownik może wykonać polecenie. Jeśli chcesz, aby grupa użytkowników go wykonała, pozostaw to tak, jak jest.
sudo
napisanym poleceniem?