Vtiger 7 迁移storage、test目录至NFS后无写入权限问题求助
Vtiger 7 NFS挂载写入权限问题解决方案
1. 修复NFS服务端共享配置
NFS默认开启root_squash参数,会将客户端的root用户映射为匿名用户nfsnobody,即使目录设置777权限也会拦截写入请求,可通过配置用户映射解决:
- 编辑服务端
/etc/exports文件,在共享目录配置中添加身份映射参数,将所有访问用户映射为Vtiger运行用户(通常为apache或www-data):
示例配置:
其中/srv/nfs/vtiger 10.0.0.0/24(rw,sync,no_subtree_check,no_root_squash,all_squash,anonuid=33,anongid=33)anonuid、anongid替换为你的Vtiger运行用户的实际UID、GID,IP段替换为你服务的内网网段。 - 配置生效命令:
exportfs -ra systemctl restart nfs-server
2. 校验服务端与客户端用户身份一致性
NFS基于UID、GID做权限校验,而非用户名,必须保证所有客户端和NFS服务端上Vtiger运行用户的UID、GID完全一致:
- 客户端执行命令查询web用户UID/GID:
id www-data(运行用户为apache则替换为apache) - 服务端执行相同命令,确认返回的uid、gid值和客户端完全一致,若不一致可修改对应用户的UID/GID,或直接在上述
/etc/exports配置中填写客户端web用户的UID/GID即可。
3. 验证客户端NFS挂载参数
- 执行
mount | grep nfs确认挂载目录参数包含rw(可写),不存在ro(只读)参数 - 若参数错误,卸载后重新挂载,或修改
/etc/fstab配置永久生效,示例fstab配置:10.0.0.10:/srv/nfs/vtiger /mnt/vtiger-nfs nfs defaults,rw,soft,timeo=10 0 0 - 直接切换到web用户测试写入能力,确认基础权限正常:
若可正常创建文件则NFS层权限无问题,否则继续排查。sudo -u www-data touch /mnt/vtiger-nfs/storage/test_write.txt
4. 关闭系统安全模块拦截
- RHEL/CentOS/Rocky等发行版默认开启SELinux,会拦截web服务写入NFS目录,执行命令开启对应权限:
setsebool -P httpd_use_nfs on - Debian/Ubuntu系若开启了AppArmor,需调整Apache/Nginx的AppArmor规则,放开NFS挂载目录的读写权限。
5. 校验Vtiger配置
- 检查Vtiger根目录下的
config.inc.php文件,确认root_directory、cache_dir等目录配置指向软链接路径,没有硬编码旧的本地存储路径 - 清空Vtiger缓存目录下的所有文件,避免旧路径缓存导致写入异常。
内容的提问来源于stack exchange,提问作者Wastreet
相关产品推荐
相关产品推荐

