在磁盘挂载的时候不可避免的会涉及到文件的权限和归属问题,如果A服务器和B服务器的用户uid和gid不一样,就会导致读写权限的混乱。
现在需要将A服务器的data磁盘挂载到B服务器对应的路径,在用root用户进行mount操作的时候,挂载后的目标路径(即B服务器)的属主默认是和源路径(A服务器)的属主一致的。
比如A服务器用户appuser的信息如下:
[A server]$ id appuser
uid=500(appuser) gid=501(appuser) ة=501(appuser),500(dba)
[appuser@iZ23am9cwvgZ wap]$
如果/mount/Apath的用户属主为appuser:dba,即uid=500(appuser) gid=501(appuser) ,则挂载后的B服务器的属主默认也为uid=500 gid=501,但是如果在B服务器上该uid和gid对应的用户和用户组不是appuser和dba而是别的用户,问题就来了,当chown路径 /mount/Bpath分配给appuser:dba(假设uid=501(appuser) gid=502(appuser) )的时候,/mount/Apat的属主也会变成uid=501 gid=502,但在A服务器上该uid和gid对应的用户和用户组并不是appuser和dba,那么该用户权限下的应用在读写该路径的时候就会存在权限限制。反之亦然。
所以磁盘挂载的时候要确保用户权限的一致性,相关用户对应的uid和gid必须是一致的,若不一致,需要vi /etc/passwd和vi /etc/group,修改uid和gid,修改的原则是确保唯一性,同时用pwconv和grpconv命令来信息同步,这样权限冲突的问题才能够解决。
或
usermod -u 500 appuser
groupmod -g 501 dba
20180920追加
[root@iZbp19kz2oogerbtslbw5xZ ExaminationReport]# vi /etc/idmapd.conf
#Domain = local.domain.edu
Domain = kaixinbao.com
# The following is a comma-separated list of Kerberos realm
# names that should be considered to be equivalent to the
# local realm, such that <user>@REALM.A can be assumed to
# be the same user as <user>@REALM.B
# If not specified, the default local realm is the domain name,
# which defaults to the host's DNS domain name,
# translated to upper-case.
# Note that if this value is specified, the local realm name
# must be included in the list!
#Local-Realms =
[Mapping]
Nobody-User = appuser
Nobody-Group = dba
[Translation]
以上修改需要在服务端和客户端都操作,修改完后重启相关服务
重启命令:
service rpcidmapd restart
或
systemctl restart rpcidmapd.service
评论