Não é possível rm / unlink files no começo mas pode depois do vim e escrever o arquivo

1

OBSERVAÇÃO: Parece que configurar o selinux como modo Permissivo não evita esse problema de permissão de arquivo.

Temos uma VM de desenvolvimento executando o CentOS 7.2.1511. Os arquivos são compartilhados com nossas máquinas host (Macs) via NFS via vagrant (virtualbox).

O compartilhamento NFS é para que possamos editar o código usando o PHPStorm em nossas máquinas host. O problema não surge se usarmos compartilhamentos SMB, mas, em seguida, o desempenho do compartilhamento de arquivos r / w é indesejavelmente lento.

A configuração de compartilhamento no vagrant é:

config.vm.synced_folder "code", "/srv/client/code" , :nfs=>true, :mount_options => ['rw,noatime,nolock,vers=3,udp,fsc,actimeo=2,resvport,rsize=32768,wsize=32768']

Esporadicamente, ao executar git checkout x ou git clean -df , receberemos mensagens de permissão negada.

$ git clean -df
warning: failed to remove modules/node_modules/acorn/bin/acorn
warning: failed to remove modules/node_modules/acorn/bin/generate-identifier-regex.js
...

executando ls -Z modules/node_modules/acorn/bin/acorn

$ ls -Z modules/node_modules/acorn/bin/acorn
-rwxr-xr-x. 503 games system_u:object_r:nfs_t:s0       modules/node_modules/acorn/bin/acorn

Qual é o usuário / grupo correto para o compartilhamento, bem como o contexto de arquivo correto, e exatamente o mesmo que um arquivo que é removível. por exemplo,

$ ls -Z composer.json
-rw-rw-r--. 503 games system_u:object_r:nfs_t:s0       composer.json

Se tentarmos remover diretamente o arquivo agora com permissão, teremos a permissão negada.

$ rm modules/node_modules/acorn/bin/acorn
rm: cannot remove ‘modules/node_modules/acorn/bin/acorn’: Permission denied

No entanto, se nós vi o arquivo e escrevemos (mesmo sem fazer nenhuma alteração editável) ou seja,

  • vi modules/node_modules/acorn/bin/acorn
  • :w
  • rm modules/node_modules/acorn/bin/acorn funcionará corretamente.

Como alternativa, se verificarmos os arquivos / diretórios relevantes da máquina host, os problemas desaparecerão e poderemos recuperar os arquivos novamente.

Alguém poderia saber por que essa permissão de arquivo aparece esporadicamente? e como podemos consertar isso?

Atualização (27-01-2017) [a pedido do incorporado]:

A saída de executar $ mount re: o compartilhamento nfs é:

10.20.30.1:/Path/to/code on /guest/path/code type nfs (rw,noatime,vers=3,rsize=16384,wsize=16384,namlen=255,acregmin=2,acregmax=2,acdirmin=2,acdirmax=2,hard,nolock,proto=udp,timeo=11,retrans=3,sec=sys,mountaddr=10.20.30.1,mountvers=3,mountport=839,mountproto=udp,fsc,local_lock=all,addr=10.20.30.1)

Atualização (29-01-2017) [a pedido do lauc.exon.nod]:

Execute sudo setenforce Permissive

$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Ainda não foi possível excluir o arquivo previamente com erro:

$ rm /guest/path/code/vendor/twig/twig/doc/filters/abs.rst
rm: cannot remove ‘/guest/path/code/vendor/twig/twig/doc/filters/abs.rst’: Permission denied
$ ls -Z /guest/path/code/vendor/twig/twig/doc/filters/abs.rst
-rw-rw-r--. 503 games system_u:object_r:nfs_t:s0       /guest/path/code/vendor/twig/twig/doc/filters/abs.rst

Eliminou esse erro removendo os arquivos afetados do host e conseguiu reproduzir o erro novamente com novos arquivos. Parece que configurar o selinux para o modo Permissivo não afeta o problema do NFS.

Atualização (31-01-2017) [a pedido do mzhaase]:

Tocar em um arquivo com o problema de permissão não elimina o problema de permissão. Um vim subseqüente com: w limpou o problema de permissão e o arquivo foi então corrigido corretamente.

Atualização (02-02-2017) [a pedido de allo]:

Tentou lsattr um arquivo com erro de permissão. Infelizmente recebi lsattr: Inappropriate ioctl for device... . De acordo com o link - Sistemas de arquivos suportados - as montagens do NFS não são lsattr-capazes.

    
por kdvy 25.01.2017 / 11:04

0 respostas