Назад | Перейти на главную страницу

Сначала невозможно rm / unlink файлы, но может после vim и записи файла

НОТА: Похоже, установка selinux в разрешающий режим не предотвращает проблему с правами доступа к файлам.

У нас есть виртуальная машина разработки под управлением CentOs 7.2.1511. Файлы передаются нашим хост-машинам (Mac) через NFS через vagrant (виртуальный бокс).

Общий ресурс NFS предназначен для редактирования кода с помощью PHPStorm на наших хост-машинах. Проблема не возникает, если мы используем общие ресурсы SMB, но тогда скорость чтения / записи файлового ресурса становится нежелательно низкой.

Настройка доли в бродяге:

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']

Иногда при беге git checkout x или git clean -dfмы будем получать сообщения об отказе в разрешении.

$ 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
...

Бег 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

Это правильный пользователь / группа для общего ресурса, а также правильный контекст файла и точно такой же, как и у удаляемого файла. например

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

Если мы попытаемся удалить файл с теперь странными разрешениями напрямую, мы получим отказ в разрешении.

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

Однако, если мы vii файл и напишем (даже без внесения каких-либо редактируемых изменений), т.е.

В качестве альтернативы, если мы проверим соответствующие файлы / каталоги с хост-машины, проблемы исчезнут, и мы сможем снова rm файлы.

Кто-нибудь знает, почему это разрешение файла появляется время от времени? и как мы можем это исправить?

Обновление (27-01-2017) [по запросу встроенного]:

Выход запущенного $ mount re: доля 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)

Обновление (29-01-2017) [по запросу lauc.exon.nod]:

Побежали 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

По-прежнему не удается удалить файл с ошибкой:

$ 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

Устранена эта ошибка, удалив затронутые файлы с хоста, а затем снова удалось воспроизвести ошибку с новыми файлами. Похоже, что установка selinux в разрешающий режим не влияет на проблему NFS.

Обновление (31-01-2017) [по просьбе мжаасе]:

Прикосновение к файлу с проблемой разрешения не устраняет проблему с разрешением. Последующий vim с: w действительно устранил проблему с разрешением, и затем файл был правильно удален.

Обновление (02-02-2017) [по просьбе алло]:

Попытка lsattr файл с ошибкой разрешения. К сожалению получил lsattr: Inappropriate ioctl for device.... В соответствии с http://www.jpeek.com/articles/linuxmag/2008-07/ - Поддерживаемые файловые системы - монтирование NFS не поддерживает lsattr.