Manjaro下~/.local/bin脚本777权限仍报权限被拒绝如何解决
问题根因
该权限报错和文件本身的读写执行权限、ACL配置、SELinux上下文没有关系,核心原因是脚本所在的存储分区挂载时加了noexec参数:这个参数会禁止分区内所有文件被直接作为可执行程序运行,哪怕文件权限设为777也会返回Permission denied。
你提到同目录下所有脚本都报同样错误、切换到TTY操作问题复现的特征,完全匹配noexec参数导致的故障表现。
另外从stat输出能看到文件实际所属组是root(GID 0),和你用ls -la、getfacl看到的用户组不一致,说明之前执行的chown命令没有完全生效,但这个问题不会阻断执行——毕竟文件other位已经开了rwx权限,所有用户都有执行资格。
排查验证
执行下面的命令查看脚本所在分区的挂载参数:
findmnt -T ~/.local/bin/jupyter
如果输出结果的OPTIONS列里包含noexec,就可以确认根因。
修复方案
按需选一种处理即可:
- 方案1:移除分区noexec限制,支持直接执行脚本
- 临时生效(重启后失效):执行命令重新挂载对应分区,把命令里的挂载点替换成脚本所在分区的实际路径,一般家目录对应分区挂载点为
/home或者根目录/:sudo mount -o remount,exec /home - 永久生效:编辑
/etc/fstab文件,找到对应分区的挂载配置行,删掉挂载参数里的noexec字段,保存后执行sudo mount -a重载配置就可以了。
- 临时生效(重启后失效):执行命令重新挂载对应分区,把命令里的挂载点替换成脚本所在分区的实际路径,一般家目录对应分区挂载点为
- 方案2:不修改挂载参数
直接用脚本对应的解释器调用执行,就能绕过noexec限制,比如shell脚本可以执行:bash ~/.local/bin/jupyter
内容的提问来源于stack exchange,提问作者shanedrum
相关产品推荐
相关产品推荐

