As permissões não restringem o acesso à montagem NFS

1

Temos um servidor RHEL 5.9 com diretórios montados em NFS a partir de um NAS central. Lá, temos um diretório de propriedade de aird1(11055):app_dev(1101) user / group com rwxrwsr-x permissions (ou seja, sgid para app_dev). E finalmente temos um processo sendo executado como grid(1001) user.

O problema é que o usuário grid pode gravar no diretório, embora não seja possível. Quando eu faço um diretório de teste local com a mesma propriedade e permissões que o NFS montado, eu não consigo escrever nele, que é o que eu espero.

Por algum motivo, as montagens do NFS não obedecem totalmente às permissões. Aqui está um exemplo:

$ ls -ldn /nfs/aird1/tmp
drwxrwsr-x 5 aird1(11055) app_dev(1101) 24576 Oct 17 13:21 /nfs/aird1/tmp

O diretório é de propriedade de aird1(11055):app_dev(1101) e não tem nenhuma ACL anexada.

Quando tento criar um arquivo na minha conta, ele falha:

$ id
uid=20501(myuser) gid=1003(mygroup) groups=10(wheel),1003(mygroup)

$ ls -l /nfs/aird1/tmp/xyz
ls: /nfs/aird1/tmp/xyz: No such file or directory

$ touch /nfs/aird1/tmp/xyz
touch: cannot touch '/nfs/aird1/tmp/xyz': Permission denied

Isso é esperado, mas agora é o mesmo que o usuário grid ...

$ id
uid=1001(grid) gid=1001(oinstall) groups=1001(oinstall),1002(dba)

$ touch /nfs/aird1/tmp/xyz

$ ls -l /nfs/aird1/tmp/xyz
-rw-r--r-- 1 grid(1001) app_dev(1101) 0 Oct 17 13:24 xyz

Por que eu consegui criar o arquivo? Não há sobreposição entre os UIDs e os GIDs de propriedade de diretório e nem o myuser ou o grid com alguns UIDs / GIDs que eu posso criar o arquivo e, com alguns outros, não consigo.

Este é o registro de /etc/fstab :

nas:/vol/... /nfs  nfs   rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,nosuid,actimeo=0 0 0

Alguma idéia do que está acontecendo aqui?

Obrigado!

    
por MLu 17.10.2013 / 02:40

1 resposta

1

O NFS foi originalmente projetado para ser usado em redes com as mesmas contas (usuários, grupos e membros do grupo) em todas as máquinas. Se este não for o caso, coisas estranhas podem acontecer. Implementações recentes do NFS têm maneiras de remapear IDs de usuários e grupos entre o cliente e o servidor.

Aqui está o meu palpite sobre o que está acontecendo. O diretório é gravável pelo grupo 1101 (que é chamado de app_dev no cliente). O servidor vê uma solicitação em nome do usuário 1001 (que é chamado de grid no cliente, não que o servidor se importe), por isso tenta gravar no diretório /nfs/aird1/tmp como usuário 1001. Acontece que o usuário 1001 em o servidor está no grupo 1101 e, portanto, pode gravar nesse diretório. Portanto, o pedido é concedido.

    
por 18.10.2013 / 02:04