NTFS数据分区执行权限

NTFS数据分区执行权限

我正在尝试从 shell 执行一些位于我的数据分区上的脚本,但我遇到权限问题。

bash: /media/storage/ss/script.py: Permission denied

在运行之前,我提供了脚本执行权限:

chmod +x script.py

问题可能与我的 fstab 文件中的设置有关。我尝试编辑我的 /etc/fstab 设置。目前他们是:

UUID=F6C09DB5C09D7C95 /media/storage/    ntfs-3g uid=1000,gid=1000,umask=0022,auto,rw 0 0

但是,当我运行时,我看不到这些更新的 uid 和 gid:

编辑:

~$ stat /media/storage

输出:

  File: /media/storage/
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 804h/2052d  Inode: 5           Links: 1
Access: (0777/drwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)

那么如何更改 /etc/fstab 文件以对 ntfs 数据分区上的脚本具有执行权限?

- 编辑 -

~$ stat /media/storage/ss/script.py

输出:

  File: /media/storage/ss/script.py
  Size: 525         Blocks: 2          IO Block: 4096   regular file
Device: 804h/2052d  Inode: 10208       Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-03-13 13:17:31.980325600 +0000
Modify: 2019-03-13 13:14:11.690160100 +0000
Change: 2019-03-13 13:14:11.690160100 +0000
 Birth: -

当我跑步时:

~$ head -n 1 /media/storage/ss/script.py

输出:

 #! /usr/bin/env python

当我跑步时:

mount | grep /media/storage

输出:

/dev/sda4 on /media/storage type fuseblk (rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,allow_other,blksize=4096,user)

谢谢!

答案1

您已安装/media/storagenoexec.noexec不允许在已安装的文件系统上执行任何二进制文件(请参阅 参考资料man 8 mount)。

您必须execfstab.请注意,您的fstab条目也缺少该defaults选项(另请参阅man 5 fstab)。你可能想要类似的东西

UUID=F6C09DB5C09D7C95 /media/storage/    ntfs-3g defaults,uid=1000,gid=1000,umask=0022 0 0

检查man 5 fstabman 8 mount的含义defaults。至少在我的系统上,它是一样的

rw,suid,dev,exec,auto,nouser,async

但这取决于文件系统。

如果您想在不更改您的情况下检查此项fstab,请尝试

mount -o remount,exec /media/storage/ 

首先以/media/storage/可执行权限重新安装并再次检查您的脚本。

答案2

我假设重新启动会根据编辑的 /etc/fstab 设置挂载数据分区。然而,情况似乎并非如此。

运行后:

sudo mount -a

问题解决了。现在我可以从 shell 在数据分区上执行脚本。

stat /media/storage 的结果现在是:

  File: /media/storage
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 804h/2052d  Inode: 5           Links: 1
Access: (0755/drwxr-xr-x)  Uid: ( 1000/  floris)   Gid: ( 1000/  floris)

我将尝试找出适当的 /etc/fstab 配置,但我的执行问题已解决。

答案3

当您尝试排除目录的可执行权限时?尝试对文件掩码 fmask=0111(fmask 仅适用于文件,不适用于目录)和目录掩码 dmask=0777(适用于目录)使用单独的值

相关内容