Usando o Vim Posso ler arquivos no diretório NFS Mount, mas não posso modificar os arquivos?

0

Dado que:

  • Estou executando como root no meu computador local.
  • Eu tenho um diretório montado pelo NFS chamado “server_views” no meu computador local.
  • É assim que o diretório “server_views” é configurado em fstab e mstab no meu computador local:

    / etc / fstab

        server:/server_views /server_views nfs rw,defaults,noauto,users,suid,exec,tcp,posix,soft 0 0  
    

    / etc / mstab

        server:/server_views /server_views nfs rw,users,nodev,tcp,posix,soft,vers=4,addr=XXX.XXX.XXX.XXX,clientaddr=YYY.YY.YY.Y 0 0
    
  • Eu tenho um arquivo chamado "foo.c" dentro do diretório "server_views" no servidor.

No meu computador local; Enquanto dentro do diretório montado ("server_views"):

Executando ls –l dentro de saídas de diretório “server_views” montadas:

  -r-xr-xr-x 1 nobody nobody 28668 Mar  2  2017   foo.c

* Se eu tentar escrever no arquivo "foo.c" com o Vim; Eu recebo o seguinte erro no console do Vim:

"foo.c" E212: Can't open file for writing

* Se eu tentar mudar as permissões foo.c, recebo:

chmod: changing permissions of 'foo.c': Operation not permitted

Se eu copiar manualmente o arquivo "foo.c" para algum diretório não montado no meu computador local:

A execução de ls –l dentro do diretório que contém foo.c no meu computador local fornece:

-r-xr-xr-x 1 17932   26 28720 Mar 22 17:58  foo.c

Eu posso escrever foo.c sem problemas usando o Vim.

Alguém sabe por que não consigo escrever no arquivo “foo.c” enquanto estou dentro do diretório NFS montado “server_views”, mas depois posso escrever no mesmo arquivo “foo.c” se o arquivo for copiado manualmente meu computador local para um diretório não montado?

    
por jjf 15.04.2018 / 08:22

2 respostas

2

Isso geralmente é controlado pela configuração root_squash no servidor NFS, que impede que root no cliente seja root no servidor NFS (que geralmente é uma prática de segurança muito boa). root_squash é o padrão, então, normalmente, um usuário só veria no_root_squash se alguém, por algum motivo, precisasse desativar o squash no usuário root remoto. Em /etc/exports no servidor NFS por exemplo

/somedir dangerhost(rw,no_root_squash,async) \
         otherhost(rw,async) \
         ...

Isso pode ser testado com um diretório 1777 mode, que permitirá que qualquer usuário remoto grave nesse diretório:

nfsserver# mkdir /somedir/tmp ; chmod 1777 /somedir/tmp

E, em seguida, em um cliente assumindo que /somedir esteja montado em /mnt

$ touch /mnt/tmp/foo
$ sudo touch /mnt/tmp/bar
$ ls -l /mnt/tmp/{foo,bar}
-rw-r--r-- 1 nfsnobody nfsnobody 0 Apr 15 14:27 /mnt/tmp/bar
-rw-r--r-- 1 jhqdoe    jhqdoe    0 Apr 15 14:27 /mnt/tmp/foo
$ 

Aqui root foi esmagado para o usuário nfsnobody (isso pode em outras plataformas ser nobody ou outras contas).

    
por 15.04.2018 / 16:28
0

O problema estava em um computador de gate (a configuração do Mascaramento de IP estava incorreta) que estava entre o meu computador local e o servidor NFS.

O computador do gate foi reinicializado, as interfaces eth foram ativadas (usando o ifup) e o firewall foi reiniciado (o gate tinha o rc.firewall-2.4)

Isso serviu como uma boa referência: link

    
por 16.04.2018 / 22:35