Uruchom skrypt jako inny użytkownik niż root [zamknięty]

11

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

bulkmoustache
źródło
1
Pytanie nie jest całkowicie jasne: „jesteś rootem i chcesz uruchomić skrypt jako użytkownik1” lub „jesteś użytkownikiem1 i chcesz uruchomić skrypt jako użytkownik root”? Jeśli tak jest w pierwszym przypadku, jaki jest problem z sudonapisanym poleceniem?
Michas
Sprawdźsu(1)
vonbrand,

Odpowiedzi:

11

Muszę powiedzieć, że nigdy mi się nie podobało sudo(szczególnie jego konfiguracje). Zwykły stary su:

su -c 'command' - user

Wykonany z roota, nie poprosi o podanie hasła.

orion
źródło
0

Użytkownik musi mieć

  1. wykonać uprawnienie dla całej ścieżki katalogu ( /roottylko tutaj )

  2. wykonać uprawnienie do pliku

  3. uprawnienia do odczytu pliku

Dobrym pomysłem może być pozostawienie /rootnietkniętego i utworzenie (lub użycie) innego katalogu do tego celu (np /usr/local/bin.). Możesz uczynić user1jedynego użytkownika, który może wykonać skrypt, czyniąc go właścicielem pliku lub pozostawić rootjako właściciela i grupę, ustawić proste uprawnienia dostępu ( chmod) 770i dodać za user1pomocą ACLs ( setfacl).

Hauke ​​Laging
źródło
0

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/sudoerswpis 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 rootsię sudodowodzeniu.

%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.


źródło