Mam skrypt.sh, który należy uruchomić jako użytkownik2. Jednak ten skrypt można uruchomić tylko pod user1 w mojej aplikacji.
Chciałbym uruchomić następujące polecenie:
su user2 -C script.sh
ale móc działać bez hasła.
Chcę również, aby było to bardzo restrykcyjne, ponieważ w user1 można uruchomić skrypt.sh tylko pod user2 i nic więcej.
Próbowałem to zrobić z plikiem sudoers i po godzinach prób byłem nieskończenie zdezorientowany.
Jeśli ktoś może podać wyraźny przykład tego, jak można to osiągnąć (zamiast czegoś ogólnego, takiego jak użycie sudoers), byłoby to bardzo mile widziane.
Odpowiedzi:
Zadzwoń
visudo
i dodaj to:Te ścieżki poleceń musi być absolutna ! Następnie zadzwoń
sudo -u user2 /home/user2/bin/test.sh
zuser1
muszli. Gotowe.źródło
spróbuj biegać:
Spowoduje to uruchomienie polecenia jako nazwa użytkownika, pod warunkiem, że masz uprawnienia do sudo jako ten użytkownik.
źródło
sudo su -c "Your command right here" -s /bin/sh otheruser
su username -c "command"
.screen
jako inny użytkownik, może to być pomocne - linuxquestions.org/questions/linux-software-2/ ...username
(lub w pytaniuuser2
) ma samo hasło, nie pozwoli to pominąć monitu o to. druga odpowiedź brzmi: hasło nie jest potrzebne, zarówno użytkownik1, jak i użytkownik2.Powyższe polecenie jest poprawne, ale w Red Hat, jeśli selinux wymusza, nie pozwoli cronowi na wykonywanie skryptów jako inny użytkownik. przykład;
execl: couldn't exec /bin/sh execl: Permission denied
Musiałem zainstalować setroubleshoot i setools i uruchomić następujące, aby na to zezwolić:
źródło