Nie można wykonać skryptu na zamontowanym dysku zewnętrznym

23

/ Mnt / ext jest zamontowany w systemie plików ext2, zewnętrznym dysku twardym. Z jakiegoś powodu nie mogę uruchomić skryptów z tego miejsca. Zobacz sesję poniżej.

luntain@plato /mnt/ext $ echo "echo success" > k.sh
luntain@plato /mnt/ext $ chmod 777 k.sh
luntain@plato /mnt/ext $ ./k.sh
-bash: ./k.sh: Permission denied
126luntain@plato /mnt/ext $ ll k.sh
-rwxrwxrwx 1 luntain luntain 13 Jan 23 15:08 k.sh*
luntain@plato /mnt/ext $ 

Chciałbym dowiedzieć się, dlaczego widzę błąd.

luntain
źródło

Odpowiedzi:

22

Prawdopodobnie podczas noexecmontowania systemu plików ustawiono atrybut; może jest to „funkcja” Twojej dystrybucji.

Aby to sprawdzić, możesz wykonać mount, które pokażą opcje montowania w nawiasach, i usunąć noexecflagę, której możesz użyć mount -o remount,exec /mnt/extw katalogu głównym.

Upewnij się również, że umieściłeś opcję exec po opcji użytkownika, w przeciwnym razie system nadal będzie montował dysk jako noexec.

Whitequark
źródło
3

System plików jest montowany z opcją noexec.

James przywraca Monikę Polk
źródło
3

Zainstalowany system plików noexecuniemożliwia jedynie wykonanie skryptu (tj. Proszenie jądra o wykonanie go odpowiednio na podstawie magicznej liczby lub linii shebang). Nie przeszkadza to w wywołaniu interpretera na innym zamontowanym systemie plików execi przekazaniu skryptu jako argumentu (lub standardowego wejścia) do tego interpretera. Ergo, jeśli nie root, mógłbyś obejść to za pomocą just sh k.sh.

pilona
źródło