linux - 无法从已安装的磁盘执行 .sh 脚本(Ubuntu 18.04):zsh:权限被拒绝
问题描述
Ubuntu 18.04 - 从这里安装 Zsh 和 Oh-My-Zsh 。
鉴于以下
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
我的 /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 配置中的某个地方。有任何想法吗?
解决方案
您隐式指定noexec
,这意味着设备上的任何文件都不可执行。
这是man mount
:
用户
允许普通用户挂载文件系统。挂载用户的名称被写入 mtab 文件(或在没有常规 mtab 的系统上写入 /run/mount 中的私有 libmount 文件),以便同一用户可以再次卸载文件系统。 此选项暗示选项 noexec、 nosuid 和 nodev (除非被后续选项覆盖,如选项行 user,exec,dev,suid )。
同一段还建议修复:使用user,exec
重新启用用户可挂载的 fs 中的执行。
推荐阅读
- c - C程序返回矩形的周长和面积
- r - 如何在使用 condformat2excel() 将 condformat() 对象写为 xlsx 文件之前加粗并冻结其标题?
- alloy - 让 Alloy 块之外的声明
- scala - 有没有办法告诉 scala 编译器不要进行尾调用优化?
- angular - Angular DataTable:如何仅选择当前页面记录
- xml - XSL 基于所选选项的不同颜色
- android - 从最大值到最小值的 Android 材质滑块
- python - Python Popen() 阻塞
- python-3.x - 我无法导入函数
- reactjs - 有条件地添加需要数组的属性