Um problema simples Com o Solaris 11 eu crio um compartilhamento nfs
zfs set share.nfs=on rpool/public
meu cliente Linux montá-lo ..
mount solaris2:/var/public /mnt/share
Quero dar acesso de gravação ao myuser, conheço três soluções
Solução 1: chmod 777
chmod 777 /var/public #NO COMMENT
Solução 2: tornou o uid idêntico entre o sistema remoto e local
altere o uid do meu usuário Solaris local para o uid no usuário Linux remoto e, em seguida, dê um acl, tudo bem se você tiver apenas um usuário, é simplesmente horrível em um sistema multiusuário (você deve substituir todos os uids antigos pelos mais novos! )
Solução 3: Mapear o uid do usuário remoto para um usuário local e depois dar o acl
idmap add remoteuser@remotehost unixuser:myuser
chmod A=user:myuser:add_file/read_data/execute/write_data/execute:allow /var/public
mas não funciona. O usuário local pode gravar dados em /var/public, o remoto não, por quê?
Edit1: comando idmap como eu entendo traduzir gid/uid para SID, é útil com AD ou LDAP
Edit2: no illusmos eles colocaram algumas opções interessantes uidmap e gidmap, apenas um problema: Solaris11 não é uma "distro" Illumos e essas opções simplesmente não existem
Esperando uma solução melhor, esta solução alternativa é boa: crie um grupo com o mesmo gid no cliente e no servidor e faça o acl.
No cliente (Linux)
no servidor (Solaris)
Em seguida, adiciono o acl ao conjunto zfs compartilhado (é montado em /var/public)
Teste: funciona bem, todos os usuários (remotos e locais) que pertencem ao grupo nfs-users podem gravar no compartilhamento. Uma solução melhor era usar AD (ou samba4) + idmap, mas essa solução alternativa funciona bem também no ambiente de arquivos locais.