Неможливо виконати сценарій на встановленому зовнішньому диску


23

/ Mnt / ext встановлено у файловій системі ext2, зовнішньому жорсткому диску. Чомусь я не можу запускати сценарії звідти. Перегляньте сесію нижче.

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 $ 

Я хотів би дізнатися, чому я бачу помилку.

Відповіді:


22

Ймовірно, був noexecнабір атрибутів, коли файлова система монтувалася; можливо, це ваша "дистрибуція".

Щоб перевірити це, ви можете виконати, mountщо буде відображати параметри монтажу в дужках, а також видалити noexecпрапор, який ви можете використовувати mount -o remount,exec /mnt/extпід root.

Крім того, переконайтеся, що ви розміщуєте опцію exec після користувацької опції, або система все одно зможе встановити ваш диск як noexec.



3

Файлова система, встановлена noexecлише перешкоджає виконанню сценарію (тобто, прохання ядра виконати його належним чином на основі магічного числа або рядка shebang). Це не заважає вам викликати інтерпретатора на іншу встановлену файлову систему execта передавати скрипт як аргумент (або на stdin) вказаному інтерпретатору. Ерго, якби не корінь, ти міг би обійтись цим просто sh k.sh.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.