Próbuję zainstalować aplikację przenośną na moim dysku USB, tak aby był zgodny zarówno z Ubuntu, jak i Windows (konkretnie programem o nazwie eToys). Obsługa jest już wbudowana w aplikację dla obu systemów operacyjnych - jest dostępna etoys.sh
dla Ubuntu i etoys.exe
Windows. Zdecydowałem się zainstalować na dysku FAT, ponieważ można go odczytać z obu systemów. Działa to dobrze w systemie Windows, ale z jakiegoś powodu nie mogę uruchomić etoys.sh na Ubuntu.
Problem nie dotyczy pliku - gdy cały folder jest kopiowany na lokalny dysk twardy, aplikacja działa świetnie w Ubuntu. Ale kiedy próbuję uruchomić go z USB, otwiera plik w edytorze tekstu.
Następnie próbowałem uruchomić go z terminala, ale dostałem komunikat Odmowa dostępu.
Miałem ten sam problem z innymi plikami wykonywalnymi.
Czy istnieje prosty sposób na wykonanie czynności z pamięci USB?
źródło
Odpowiedzi:
Z powodu ograniczeń systemu plików FA32 nie można tego zrobić.
Teraz możesz oszukiwać:
sh etoys.sh
zamiast./etoys.sh
jeśli chcesz, możesz nawet utworzyć inny skrypt (na przykład na dysku twardym), który po prostu wywołuje skrypt na dysku USB:
źródło
Montaż urządzenia
-o mode=<value>
powinien działaćUstaw tryb wszystkich plików na wartość i
0777
ignorowanie oryginalnych uprawnień. Dodaj uprawnienia do wyszukiwania do katalogów, które mają uprawnienia do odczytu. Wartość podana jest ósemkowo.źródło
mode=
opcji dla vfat, patrz mount (8) .Znalazłem świetne rozwiązanie na http://ubuntuforums.org/showthread.php?t=1665289, które rozwiązało problem.
Zasadniczo mówi o uruchomieniu polecenia
i zapobiegnie to automatycznemu montowaniu dysków za pomocą opcji showexec.
Nie lubię odpowiadać na własne pytanie, ale to zadziałało dla mnie i mam nadzieję, że pomoże to także innym ludziom.
dla Ubuntu 18.04:
źródło
Ostatecznie, sprawa wydaje się, że
udisks
montuje system plików zshowexec
opcją zapobiegania dowolny plik, który nie kończy się.exe
,.bat
czy.com
do uruchomienia.Powiązane pytanie (jak nadać niestandardowym opcjom montowania udisk) można znaleźć tutaj: Jak skonfigurować rejestrowanie danych w celu natychmiastowego pendrive? Okazuje się, że można
udev
do tego użyć konfiguracji.Czy ustawienie domyślnych opcji montowania udisk jest naprawdę niemożliwe? proponuje inne rozwiązanie oparte na
udisks-glue
, ale wydaje się mniej przekonujące, ponieważ ostatecznie się na nim opieraudisks
, tak więc wydaje się, że można dodawać opcje, ale ich nie usuwać, a w szczególnościshowexec
nadal istnieje).W każdym razie wolę to niż łatanie pliku binarnego.
źródło
Żadne z przedstawionych rozwiązań nie działało, o ile mogłem powiedzieć, aby uzyskać program napisany jako program terminalowy Linux do uruchomienia na mojej partycji FAT32, ale zmiana nazwy pliku programu na rozszerzenie .exe zadziałała (dziękuję za podpowiedź) , wszystko, co zrobiłem, to zmienić nazwę pliku na filename.exe dla programu terminalowego, który próbowałem uruchomić na partycji FAT32, a następnie odinstalować, ponownie zamontować i ustawić uprawnienia dysku, aby umożliwić wykonanie, a następnie przejść do nazwy pliku. exe i ustawić swoje uprawnienia, a następnie znacznik wyboru będzie się trzymać zamiast wracać do minusa, a kiedy ustawię ścieżkę i wprowadzę ./filename.exe w wierszu polecenia, program uruchomił się tak, jak powinien i pokazuje wiersz poleceń wraz z nazwą pliku .exe jak wprowadzono, chociaż katalog plików Ubuntu pokazuje plik jako MSDOS / Windows, ale działa jako program Linux.
źródło
Znalazłem więc znacznie prostsze (i bezpieczniejsze rozwiązanie).
Użyj gparted, aby sformatować USB FAT32, a następnie nas Partition => Manage Flags, aby ustawić następujące flagi: boot, lba
źródło
Możesz użyć
umask=000
trybu:Źródło: wiki.linuxquestions.org , sekcja „Opcje montowania dla tłuszczu” w mount (8) .
źródło
Jeśli składnia to bash ...
źródło