Gdyby to był normalny plik binarny, możesz ustawić go w trybie setuid, uruchamiając
# chmod u+s /path/to/binary
Niestety skrypty nie mogą być setuid. (Cóż, możesz, ale jest to ignorowane). Powodem tego jest to, że pierwszy wiersz skryptu informuje system operacyjny, pod jakim tłumaczem ma uruchomić skrypt. Na przykład, jeśli masz skrypt z:
#!/bin/bash
Tak naprawdę skończyłbyś biegać
/bin/bash /path/to/script
Oczywiście potrzebujesz tłumacza setuid, co oznaczałoby, że wszystkie skrypty byłyby setuid. To byłoby złe.
Możesz to zrobić za pomocą sudo, umieszczając następujące polecenie w pliku / etc / sudoers, uruchamiając visudo.
ALL ALL=NOPASSWD: /path/to/script
A teraz każdy użytkownik może uruchomić
$ sudo /path/to/script
Pozwala im to uruchomić skrypt bez wpisywania hasła.
Istnieje alternatywa, która nie wymaga sudo w poleceniu, która wymaga utworzenia małego pliku binarnego z ustawionym skryptem, który wykonuje skrypt, ale każdy dodatkowy plik binarny z setuid stanowi kolejny potencjalny problem bezpieczeństwa.