当前计算机包含一个ssd做系统盘,挂载了一个机械硬盘做资料盘,当从源码安装mpich或openmpi时,执行./configure提示权限不够,chomd和chown无效,当前路径及configure的权限为rwxrwxr-x, chmod 777 无效。
当把源码安装包从资料盘移动到系统盘,可正常执行./configure进行编译,请问可能的原因是什么?
当前计算机包含一个ssd做系统盘,挂载了一个机械硬盘做资料盘,当从源码安装mpich或openmpi时,执行./configure提示权限不够,chomd和chown无效,当前路径及configure的权限为rwxrwxr-x, chmod 777 无效。
当把源码安装包从资料盘移动到系统盘,可正常执行./configure进行编译,请问可能的原因是什么?
关注引自免费微信小程序:皆我百晓生
在Ubuntu系统下遇到权限不足的问题,即使文件权限设置为777(rwxrwxrwx),且所有者和用户组已正确设置,但仍然无法执行./configure命令的情况,原因可能在于挂载磁盘的挂载选项中没有启用用户执行权限(execute permission)。
Linux系统在挂载外部存储设备时,可以通过挂载选项控制文件系统的权限行为。其中,noexec选项会禁止在该文件系统上执行任何程序。检查当前挂载点的挂载配置,确保没有启用这个选项。
解决步骤:
首先查看当前挂载点的挂载选项,可以使用mount命令:
mount | grep /path/to/your/mount/point
这里的/path/to/your/mount/point替换为你的资料盘挂载目录。
如果输出结果中包含了noexec选项,比如类似这样的行:
/dev/sdb1 on /media/data type ext4 (rw,noexec,nosuid,nodev)
说明该分区被设置了不允许执行文件。
解决这个问题,你需要修改fstab文件,移除noexec选项。首先备份fstab文件:
sudo cp /etc/fstab /etc/fstab.bak
使用文本编辑器打开fstab文件(这里以nano为例):
sudo nano /etc/fstab
找到对应的挂载点配置行,去掉noexec(如果有其他不需要的限制选项也可以一并去掉):
/dev/sdb1 /media/data ext4 defaults,noatime 0 2
修改为
/dev/sdb1 /media/data ext4 defaults,noatime 0 2
保存并退出编辑器,然后重新挂载该分区以应用新的挂载选项:
sudo mount -o remount /media/data
这样之后,你应该能够在挂载的资料盘上执行./configure等命令了。当然,确保在操作前了解fstab文件的结构和作用,并谨慎修改以防止影响系统稳定性。