问题:

  服务器A:192.168.10.230

  服务器B:192.168.10.231

  由于服务器A空间不足,打算将服务器A产生的数据库日志挂载到服务器B上,刚开始设定的anonuid和anongid,均为A服务器postgres账户的id值,因为考虑的是在服务器A中以postgres用户来归档日志,但由于A、B两台服务器中的postgres用户的id值不同,挂载之后目录用户和所有者均为nobody,尝试创建文件,但提示权限不足。

解决:

  刚开始是直接查询的网上资料,修改的anonuid和anongid,后面查阅了关于exports的帮助文档,发现anonuid和anongid需要设定为B本机的id值,至此A服务器产生的数据库日志终于可以写入B服务器上。

  在服务器B中的/etc/exports中挂载的权限设置为:

rw,sync,all_squash,anonuid=,anongid=

  其中502是服务器B中postgres用户的id值。

下面是几个nfs常用权限设置的简单说明,方便自己和大家查阅:

root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。
no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
all_squash:登入 NFS 主机使用分享目录的使用者,所有用户均被压缩成为匿名使用者,即已nobody用户的身份登录。
anonuid和anongid:明确指定匿名使用者使用指定的id值用户的权限,访问分享的目录。
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)。
insecure:允许客户端从大于1024的tcp/ip端口连接服务器。
05-21 13:49