首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从外部媒体运行程序

无法从外部媒体运行程序
EN

Ask Ubuntu用户
提问于 2017-05-10 05:06:01
回答 1查看 575关注 0票数 1

我的驱动器被格式化为ext4 3/ext4 4,所以我知道这不是文件系统可执行权限的问题。

我在一个程序中遇到了这个问题,所以为了测试它,我创建了一个快速的bash文件,只需打开一个终端并运行sudo apt-get update。运行它时,我会得到以下框:

"63 GB卷“包含用于自动启动的软件.你想运行它吗?

如果单击Run,则会得到另一个框:

糟了!运行这个软件有问题。无法找到程序。

有什么解决方案我可以尝试(除了把软件放在我的内部驱动器)?我试图运行程序的外部驱动器,特别是因为我的内部驱动器是低空间。

我还检查了“允许作为可执行文件运行”框,它是选中的(实际上,我不能将它选中)。

编辑:不包括脚本的道歉。这就是文件中的内容:

代码语言:javascript
复制
#! /bin/bash

gnome-terminal -e 'bash -c "sudo apt-get update; exec bash"'

我试图在外部媒体上运行的所有软件都有这个问题。

下面是mount | grep /dev/sd的输出:

代码语言:javascript
复制
/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)
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2017-05-10 19:46:59

您的驱动器安装了noexec选项。AFAIK,这实际上不允许在卷上执行程序,而不管各个文件上的设置如何。不同的解决方案首先取决于您如何挂载卷,但从一般的角度来看,您需要在没有noexec选项的情况下挂载卷,或者显式地将其替换为exec选项。下面是fuse手册页的摘录:

代码语言:javascript
复制
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.

以及挂载手册页的相关部分:

代码语言:javascript
复制
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.)

据我所知,fuse不支持重新挂载选项,因此我认为您必须使用/dev/sda1 (在设备上关闭任何打开的文件之后)卸载fusermount -u "/var/host/media/removable/SD Card",然后使用通常使用mount命令的选项(noexec除外)重新挂载它。请参阅man mount man fuseman fusermount,以获得对您的具体情况所需的更多详细信息。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/913618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档