我正在尝试执行位于我拥有的 NTFS 分区上的脚本。
我拥有挂载点,即~/Migration
.
ls -l
在包含挂载点的目录中向我显示
drwxrwxrwx 1 technomage technomage 4096 Sep 30 18:04 Migration
尽管我是整个结构的所有者(从挂载点开始),并且拥有 rwx 权限,但它阻止我执行这个脚本startup.sh
。 Bash 给我以下错误:
bash: ./startup.sh: Permission denied
在包含脚本的目录中,ls-la
向我显示:
drwxrwxrwx 1 technomage technomage 4.0K Oct 1 12:51 .
drwxrwxrwx 1 technomage technomage 4.0K Oct 1 12:51 ..
-rwxrwxrwx 1 technomage technomage 1.9K Oct 1 12:51 startup.sh
我仍然无法执行startup.sh
。
我知道 Linux 中 NTFS 分区的权限可能有点挑剔,所以我进入/etc/fstab
并尽可能地设置权限、所有者和掩码:
UUID=6F537BB96F6E0CBC /home/technomage/Migration ntfs-3g rw,exec,user,umask=000,uid=1000,gid=1000 0 0
然后我继续sudo umount Migration
,然后使用 重新加载 fstab 文件配置sudo mount -a
。重装成功。
尽管如此,即使使用 root 权限,我仍然无法执行脚本。
该mount | grep sda6
命令向我显示以下内容,这以某种方式告诉我该分区未正确安装或未使用我提供的配置:
/dev/sda6 on /home/technomage/Migration type fuseblk (rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,user)
我正在运行 Debian Jessie,甚至进入了stretch 的存储库以获取最新版本的ntfs-3g
驱动程序,认为这是某种错误.. 没有骰子。
我不太确定出了什么问题。请告诉我我如何错误配置了挂载 NTFS 分区的方式?我需要完全访问它。
答案1
您可以在 中进行选择/etc/fstab
,但顺序很重要;exec
必须来后 user
因为user
强加noexec
(除其他外)。所以你的/etc/fstab
条目应该是这样的:
UUID=6F537BB96F6E0CBC /home/technomage/Migration ntfs-3g rw,umask=000,uid=1000,gid=1000,user,exec 0 0
更改为 后/etc/fstab
,卸载驱动器,然后sudo mount -a
重试。
另外,请确保您的uid
和是正确的(通过在使用您的用户登录时gid
执行命令)。id