在 CentOS 里,“挂载权限”通常包含 文件系统挂载时的访问权限 和 挂载后目录/文件的访问权限 两层。下面按常见场景说明。
mount -o [选项] 设备 挂载点
常见选项:
rw / ro:读写 / 只读exec / noexec:允许 / 禁止执行程序suid / nosuid:允许 / 禁止 suid 权限dev / nodev:允许 / 禁止设备文件user / nouser:允许普通用户挂载defaults:相当于 rw,suid,dev,exec,auto,nouser,async示例:
# 只读挂载
mount -o ro /dev/sdb1 /data
# 禁止执行和suid(安全建议)
mount -o rw,noexec,nosuid,nodev /dev/sdb1 /data
示例:
/dev/sdb1 /data ext4 defaults,noexec,nosuid,nodev 0 0
或者只读:
/dev/sdb1 /data ext4 ro 0 0
修改后可用:
mount -a
测试是否生效。
挂载选项只控制“能不能”,具体“谁能访问”还要看目录权限。
# 修改属主
chown -R user:group /data
# 修改权限
chmod 755 /data
chmod 700 /data
示例:
755: owner 可写,其他人只读700: 仅 owner 可访问777: 所有人可读写执行(不安全)mount -t nfs server:/share /mnt/nfs
注意:
exports 要允许mount -t nfs -o rw,nosuid,nodev server:/share /mnt/nfs
CentOS 默认开启 SELinux,可能表现为:
查看:
getenforce
临时关闭(不推荐):
setenforce 0
正确做法(修改安全上下文):
semanage fcontext -a -t httpd_sys_content_t "/data(/.*)?"
restorecon -Rv /data
mount -o rw,noexec,nosuid,nodev /dev/sdb1 /data
chown appuser:appuser /data
chmod 750 /data
如果你能说清楚:
我可以直接给你一条可用的挂载命令。