Мой диск отформатирован к ext3/ext4, таким образом, я знаю, что это не проблема с исполнимыми полномочиями файловой системы.
У меня была эта проблема с одной программой, так для проверения его, я сделал быстрый файл удара, который просто открыл терминал и работал sudo apt-get update
. При выполнении его я получаю следующее поле:
Если я нажимаю Run
, Я затем получаю другое поле:
Есть ли какие-либо решения, которые я могу попробовать (помимо помещения программного обеспечения на моем внутреннем диске)? Я пытаюсь запустить программы прочь внешнего диска конкретно, потому что мой внутренний диск является низким на пространстве.
Я также проверил, что флажок "Allow running as executable" устанавливается, и это (на самом деле, я на самом деле не могу пометить его.)
Править: Извинения за не включая сценарий. Это - то, что находится в файле:
#! /bin/bash
gnome-terminal -e 'bash -c "sudo apt-get update; exec bash"'
У меня есть эта проблема со всем программным обеспечением, я пытаюсь работать на внешних медиа.
Вот вывод mount | grep /dev/sd
:
/dev/sda1 on /var/host/media/removable/SD Card type fuseblk (rw,nosuid,nodev,noexec,relatime,dirsync,user_id=302,group_id=302,allow_other,blksize=4096)
Ваш диск смонтирован с noexec
опция. AFAIK Это буквально запрещает выполняющие программы на объеме независимо от настроек на отдельных файлах. Определенные решения варьируются в зависимости от того, как Вы смонтировали объем во-первых, но с общей точки зрения необходимо или смонтировать объем без noexec
опция или подкачать его явно для exec
опция. Вот выборка из страницы справочника предохранителя:
OPTIONS
Most of the generic mount options described in mount are supported (ro,
rw, suid, nosuid, dev, nodev, exec, noexec, atime, noatime, sync,
async, dirsync). Filesystems are mounted with nodev,nosuid by default,
which can only be overridden by a privileged user.
И соответствующая часть страницы справочника монтирования:
noexec Do not allow direct execution of any binaries on the mounted
filesystem. (Until recently it was possible to run binaries
anyway using a command like /lib/ld*.so /mnt/binary. This trick
fails since Linux 2.4.25 / 2.6.0.)
Насколько я знаю, предохранитель не поддерживает опцию перемонтирования, таким образом, я полагаю, что необходимо размонтироваться /dev/sda1
(после того, как закрытие любых открытых файлов на устройстве) с fusermount -u "/var/host/media/removable/SD Card"
и затем монтировать его снова с опциями, Вы требуете (кроме noexec) обычно использования эти mount
команда. См. man mount
man fuse
и man fusermount
для получения дальнейшей информации как считавшие необходимыми для Вашей определенной ситуации.