Mam pewien problem z uruchamianiem programów jako super użytkownik przy pomocy sudo z nietypowych lokalizacji. Mam stworzony bowiem katalog ~/bin, w którym głównie składuję wykonywalne skrypty automatyzujące pewne zadania, które wykonuję na co dzień. Wszystko wydaje się piękne, dopóki skrypty nie potrzebują na żadnym etapie praw roota do wykonywania zadań. Tak było do dzisiaj.
Stworzyłem bowiem skrypt (o nazwie aptu), który czasowo aktywuję lub dezaktywuję pewne repozytoria w /etc/apt/sources.list.d, a jak wiadomo, celu edycji plików w katalogu /etc muszę posiadać prawa roota.
I tu właśnie rodzi się problem.
Chciałbym, żeby ten skrypt był łatwy w uruchamianiu, tj. żeby uruchamiał się poprzez polecenie:
Kod: Zaznacz cały
sudo aptu
Kod: Zaznacz cały
sudo aptu
sudo: aptu: command not found
Kod: Zaznacz cały
> which sudo
/usr/bin/sudo
> echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/home/virgo/bin
> sudo echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/home/virgo/bin
> sudo env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
Nie rozumiem dlaczego polecenia ,,echo $PATH'', w związku z powyższym, są takie same w przypadku używania i nieużywania polecenia sudo." pisze:Note, however, that the PATH environment variable is further modified in Debian because of the use of the SECURE_PATH build option.
Tak czy siak, pewnym obejściem problemu (działającym), które znalazłem na ,,stackoverflow'', jest stworzenie aliasu:
Kod: Zaznacz cały
alias sudo='sudo env PATH=$PATH'
W związku z tym mam pytanie. Czy jest możliwe takie używanie sudo, żeby pomijał w jakiś sposób opcję ,,SECURE_PATH'', ewentualnie stworzenie jakichś warunków w /etc/sudoers? Przebudowywanie sudo uważam za wyjście ostateczne.
Próbowałem jeszcze dezaktywować linijkę w sudoers:
Kod: Zaznacz cały
Defaults env_reset
Byłbym wdzięczny za jakieś podpowiedzi odnośnie konfiguracji sudo, żeby nie podmieniało zmiennej PATH.