Nie zaznaczaj tego jako duplikatu, ponieważ jest to inne pytanie!
Próbuję uruchomić skrypt za każdym razem, gdy pendrive jest podłączony do mojego systemu. Podążyłem za tym i tym pytaniem I to działa, ale wciąż są pewne problemy.
To jest mój plik reguł udev:
ACTION=="add", ATTRS{idVendor}=="8564", ATTRS{idProduct}=="1000", RUN+="/usr/local/my_script.sh"
i to jest mój skrypt:
#!
/ bin / bash
env> /tmp/env.out
cp -r / media / * nazwa-urządzenia * / * ~ / test /
Mam 2 pytania:
1. Ilekroć podłączam skrypt skryptu urządzenia USB jest wykonywany, ponieważ plik / enmp .out jest generowany w / tmp, ale dane z urządzenia USB nie są kopiowane do katalogu testowego , jeśli uruchomię skrypt ręcznie, to działa dobrze! Dlaczego??
2.Jak mogę uczynić mój plik reguł bardziej ogólnym, aby działał na każdym podłączonym urządzeniu USB bez znajomości jego identyfikatora?
Moim pomysłem jest automatyczne kopiowanie wszystkich danych z podłączonego urządzenia USB na komputer po podłączeniu.
Z góry dziękuję!
Odpowiedzi:
Aby odpowiedzieć na moje pytanie:
1.Script nie działał, ponieważ wymagał
sudo
uprawnień do uruchamiania ..Rozwiązanie tego:
Spraw, by ten skrypt był
sudo
wykonywalny!EDYCJA pliku sudoers za pomocą
sudo visudo
Po wierszu 25 (tj.
%sudo ALL=(ALL)
) Dodaj tousername ALL=(ALL) NOPASSWD: /home/username/my_script.sh
Teraz możemy używać
sudo
tego skryptu bez pytania o hasło sudoale może to powodować pewne problemy z bezpieczeństwem, więc skorzystaj z tego linku
2. Odpowiedź na moje drugie pytanie:
Aby skrypt działał na dowolnym podłączonym urządzeniu USB, zmień plik reguł na ten
ACTION=="add", ATTRS{idVendor}=="
****
", ATTRS{idProduct}=="****
", RUN+="/usr/local/my_script.sh"asterik (*) mówi, że należy to zrobić dla każdego podłączonego urządzenia USB!
Otóż to! Upewnij się, że skrypt jest wykonywalny i podłącz USB !!
Cieszyć się!
źródło
Spróbuj zastąpić tyldę pełną ścieżką do katalogu domowego. Nie wiem, czy to zadziała, ale mówisz, że skrypt działa, gdy uruchamiasz go bezpośrednio, ale gdy jest uruchamiany automatycznie, nie działa: To sprawia, że myślę, że problem może być związany z uruchomieniem go przez inny użytkownika, gdy jest uruchamiany automatycznie, a tylda przyjmuje różne wartości dla różnych użytkowników.
źródło
Spójrz na to, mątwy .
źródło