试图在USB上使文件可执行,但权限不“粘”

可能重复:
如何在NTFS(或FAT32)分区上“chmod”?

我使用LastPass作为我的密码管理器,我使用Sesame进行多因素身份validation。 在Windows上这没有问题,但我在Windows和Linux计算机之间交替,所以我需要在两种情况下都使用Sesame。

在我的笔记本电脑上,我正在运行Ubuntu 10.10,我下载了32位LastPass Sesame(Ubuntu 10.04 LTS)并将文件(可执行文件和.bin)移动到我的USB设备上。 按照指示,我尝试在可执行文件(名称为sesame )上运行chmod +x sesame

我从终端窗口尝试了这个,但是在做了ls -la之后我注意到文件的权限没有改变。 我尝试在开始时添加相同的sudo ,但这也没有任何区别(我没有得到任何类型的错误消息或任何东西)。 我还尝试以“图形”方式执行此操作,方法是右键单击Nautilus>属性>权限中的可执行文件,并尝试勾选“ 允许将文件作为程序执行”复选框 – 选中的标记仅在一秒钟后再次消失。

如果我将相同的可执行文件移动到我的硬盘驱动器,它可以很好地使其可执行(并执行它)。

我对Linux并不熟悉,所以我怀疑我错过了一些明显的东西。 可能它与USB是fat32有关(但我认为fat32分区上的文件应该是可执行的默认情况?),如果是这样 – 我的选择是什么?

并且只是说了一遍:使用Wine运行Windows版本的Sesame非常好,但这有点麻烦(至少如果我需要它,那么Wine还没有安装)。

你不能chmod fat32文件…. 只有linux文件系统“接受”linux权限。

最简单的方法是从你的主文件夹执行它,例如….复制它并chmod它,然后按照你以前的尝试执行它,但是在新的位置。

您还可以检查: 如果没有设置可执行位,我如何从CD运行可执行文件? 。 基本上,它讨论的是知道文件是否真的是二进制文件,或者它是带有.bin扩展名的文本脚本。 如果是这种情况,您可以使用bash,python,ruby或其他任何方法执行它。

看到这个答案 。 您基本上可以在安装设备时定义权限。 在你的情况下,你会做类似的事情:

 sudo mount -t vfat -o rw,user,umask=000 /path/to/device /path/to/mount/dir 

要进行永久性更改,可以将其添加到/etc/fstab

  • 使用sudo blkid查找设备的UUID(通用唯一标识符)。
  • 将挂载行添加到/etc/fstab

     UUID=your-uuid /path/to/mount/dir vfat rw,auto,user,umask=000 0 0