Da się np. na Xfce4 , wchodzisz w ustawienia klawiatury i tam masz skróty klawiszowe i przypisujesz tego skrypta . Oczywiście musisz zadbać o uprawnienia do tego .
Ma , w swoim skrypcie te komendy wykonuje z poziomu użytkownika z uprawnienia . Testowałem i działa mi manulnie(z terminala) i z przypisanych klawiszy . Ma sens, sudo jest bezpieczniejsze i ma swoje zalety np nieinterktywne podawanie hasła do sudo .Jest użyteczne w skryptach .
Masz tu zrzut z mojego pliku (sudoers):
########
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root ALL=(ALL:ALL) ALL
smieszek ALL=(ALL:ALL) ALL
################
Co do “nie znaleziono polecenia” jest to wynikiem że potrzebujesz uprawnień root’a musisz zmienić zawartość zmiennej PATH (tak gdzie są wyszukiwane komendy).
Osobne katalogi z binkami są dla roota i zwykłego usera .
Jak nie rozumiesz zasady działania skryptu lub czegoś innego śmiało pytaj .
Ale po wpisaniu hasła, i tak można coś zepsuć jak na roocie.
A jak dodam np. binarke ifconfig do katalogu zwykłego usera, to wtedy moge wykonywać to polecenie bez sudo?
A jeszcze można zrobić tak że w pliku /etc/passwd do zwykłego usera dodaemy liczbę 1010 i są podwyższone uprawnienia. Pamiętam to bo w szkole podmnieniałem, bo konto ograniczone było.
Dzieje się tak przez FHS(File System Hierarchy) , każdy katalog (z tych głównym np /media) ma inne przeznaczenie .
I te dostępne polecenia masz właśnie w zmiennej “PATH” (można jej zawartość modyfikować ) .
W zależności też od dystrybucji i użytkownika te katalogi (z tych głównych) są dostępne w zmiennej “PATH” .
W tym wypadku musiałbyś albo ręcznie przez ścieżkę ( wyszukaj za pomocą: whereis nazwa lub find / -name nazwa) lub przez właśnie dodanie tego katalogu do zmiennej “PATH”
W przypadku sudo powinieneś mieć ( w najprostszej konfiguracji )
#!/bin/bash
password="twoje_hasło_sudo"
function run()
{
echo $password | sudo -S echo " " 2>/dev/null
sudo bash -c "$1"
}
run "dhclient -r wlan0 ; ifconfig wlan0 down ; ifconfig eth0 up ; dhclient eth0"
Po kolei ,fragment:
echo $password | sudo -S echo " " 2>/dev/null
Powoduje , że wykonujesz polecenia z pomocą sudo podając hasło nie interaktywnie (użyteczne w skryptach) . Przekierowanie błędów jest po to by nie wyświetlało ich, jest to użyteczne gdy chce np status wykonanego polecenia .
sudo bash -c "$1"
Powoduje , że wywołujesz polecenia z uprawnieniami root’a przez sudo, “$1” -pierwszy parametr w tym przypadku funkcji .Następnie by obejść pewnego problemu np . przekierowanie z pomocą sudo pliku na sciezke np /etc . Wywoływane jest polecenie z podwyższonymi uprawnienia jako root . I na końcu wywołujesz funkcje z argumentami, dodatkowo ładniejszy kod i wygodniejsze to z poziomu funkcji , raz piszesz używasz razy ile chcesz . Jak byś w przyszłości potrzebował pomocy pisz na nr. gg: 8463915.
Jak coś nie jasno napisałem , to pisz o wytłumaczenie jak wszystko jest w porządku to wątek do zamknięcia