Eu quero mudar do NFSv3 para o NFSv4 e ter um problema com o mapeamento do usuário do NFSv4, porque em alguns sistemas, os uids bem conhecidos foram atribuídos a usuários normais.
Para uma descrição da configuração, veja abaixo.
A questão é como posso impor que o diretório montado pertença ao verdadeiro uid 33
em vez de uid 1000
.
Armazenamento
/mnt/web_dir
pertence ao usuário www-data (uid 33)
.
servidor da Web
-
storage:/mnt/web_dir
está montado em /var/www
- usuário
www-data
tem uid 33
Servidor de Gerenciamento
-
storage:/mnt/web_dir
está montado em /mnt/web_dir
- usuário
www-data
tem uid 1000
- usuário
admin
tem uid 33
Agora, o problema é que os uids e os nomes de usuário estão sendo misturados no servidor admin e não o uid real que está sendo exibido. Isso está dando problemas com o rsync, por exemplo.
Diretório local no armazenamento NFS
root@stor /mnt/web_dir $ ls -la
total 8
drwxr-xr-x 2 root root 4096 Jul 3 14:01 .
drwxr-xr-x 4 root root 4096 Jul 3 14:01 ..
-rw-r--r-- 1 www-data www-data 0 Jul 3 14:01 index.html
root@stor /mnt/web_dir $ id -u www-data
33
Diretório montado no NFS no servidor de administração
root@admin /mnt/webdir $ ls -lah
insgesamt 8,0K
drwxr-xr-x 2 root root 4,0K Jul 3 13:43 .
drwxr-xr-x 6 root root 4,0K Jul 3 13:43 ..
-rw-r--r-- 1 www-data www-data 0 Jul 3 13:43 testfile
root@admin /mnt/web_dir $ id -u www-data
1000
root@admin /mnt/web_dir $ ls -ln
insgesamt 0
-rw-r--r-- 1 1000 1000 0 Jul 3 13:43 testfile
A configuração é a seguinte:
root@admin / $ cat /proc/mounts
storage:/mnt/web_dir /var/www nfs4 rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.x.x.x,minorversion=0,local_lock=none,addr=10.x.x.x 0 0
e
root@stor / $ exportfs -v
/mnt/web_dir
10.x.x.x(rw,async,wdelay,no_root_squash,no_subtree_check)
e
root@admin /mnt/web_dir $ cat /etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
# Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
e
root@admin /mnt/web_dir $ dpkg -l | grep nfs
ii libnfsidmap2:amd64 0.25-4 amd64 NFS idmapping library
ii nfs-common 1:1.2.6-4 amd64 NFS support files common to client and server
root@stor / $ dpkg -l | grep nfs
ii libnfsidmap2:amd64 0.25-4 amd64 NFS idmapping library
ii nfs-common 1:1.2.6-4 amd64 NFS support files common to client and server
ii nfs-kernel-server 1:1.2.6-4 amd64 support for NFS kernel server
Aparentemente, as versões importam, porque eu testei a configuração com o Debian Jessie e os uids reais estão sendo passados para o cliente nfs4. No entanto, os servidores problemáticos possuem o Debian 7 e estão atualizados.
Agradeço qualquer ajuda. Obrigada!