Can’t execute a .sh script from mounted disk (Ubuntu 18.04): zsh: permission denied不能从挂载的磁盘执行
鉴于以下
echo '#!/bin/bash\n\nls ~;' >> myscript.sh
chmod 755 ./myscript.sh
./myscript.sh
在我的主文件夹中执行,一切按预期进行,它列出了我的主文件夹中的文件(为了简洁起见,省略了输出——它按照脚本的意图工作并列出了文件)
在一个辅助驱动器中执行,我得到下面列出的输出(在这个问题中,我的fstab配置列在下面)。
╭─user@host /media/user/raw/scripts
╰─$ echo '#!/bin/bash\n\nls ~;' >> myscript.sh
╭─user@host /media/user/raw/scripts
╰─$ chmod 755 ./myscript.sh
╭─user@host /media/user/raw/scripts
╰─$ ./myscript.sh
zsh: permission denied: ./myscript.sh
My /etc/fstab
╭─user@host /media/user/raw/scripts
╰─$ cat /etc/fstab 130 ↵
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdb2 during installation
UUID=<<some_uuid>> / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sdb1 during installation
UUID=<<some_uuid>> /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
/dev/disk/by-uuid/<<some_uuid>> /media/user/raw auto user,rw,nofail,x-gvfs-show 0 0
因为它在我的主文件夹中执行得很好,而不是在这个挂载的驱动器上,所以我认为问题出在fstab配置中的某个地方。
我在bash中尝试了同样的方法,结果是一样的(bash: ./myscript。sh: Permission denied)。这似乎是我如何挂载特定磁盘的问题,而不是用解释器.
如果你隐式地指定了noexec,那这意味着设备上没有任何文件是可执行的。
允许普通用户挂载文件系统。
挂载用户的名称被写入mtab文件(或写入没有常规mtab的系统上的/run/mount中的私有libmount文件),以便同一用户可以再次卸载文件系统。
这个选项意味着noexec、nosuid和nodev选项(除非被后面的选项覆盖,如选项行user、exec、dev、suid)。
建议:使用user,exec在user挂载的fs中重新启用执行。