Vagrant OS X CentOS 7 — общая папка, принадлежащая пользователю 501, групповые игры, общие при использовании nfs

У меня бродяга CentOS 7. Когда я пытаюсь использовать nfs для совместного использования папки, папка становится владельцем пользователя 501 из группы «игры»:

[vagrant@site-dev ~]$ ls -la
total 28
drwx-----x.  6 vagrant vagrant  180 feb 27 21:18 .
drwxr-xr-x.  3 root    root      21 dic 15 11:14 ..
drwxrwxr-x.  3 vagrant vagrant   17 feb 24 17:46 .ansible
-rw-rw-r--.  1 vagrant vagrant   17 feb 27 20:46 app.php
-rw-------.  1 vagrant vagrant 4811 feb 27 21:47 .bash_history
-rw-r--r--.  1 vagrant vagrant   18 dic  6 23:19 .bash_logout
-rw-r--r--.  1 vagrant vagrant  193 dic  6 23:19 .bash_profile
-rw-r--r--.  1 vagrant vagrant  231 dic  6 23:19 .bashrc
-rwxrwxrwx.  1 vagrant vagrant    0 feb 27 20:49 index.html
drwxrwxr-x.  2 vagrant vagrant   78 feb 24 18:17 .phpstorm_helpers
drwx------.  2 vagrant vagrant   29 feb 24 17:45 .ssh
drwxrwxrwx. 22     501 games    748 feb 27 21:47 www

Странно то, что если я уберу опцию nfs из Vagrantfile, у меня не будет этой проблемы (но производительность упадет)

Вот моя конфигурация Vagrantfile без опции nfs

Vagrant.configure(2) do |config|
  config.vm.box = "centos/7"

  config.vm.network "forwarded_port", guest: 80, host: 8088
  config.vm.network "private_network", ip: "192.168.56.150"

  config.vm.hostname = "site-dev"

  config.vm.synced_folder ".", "/home/vagrant/www"

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end

  config.vm.provision :ansible do |ansible|
    ansible.playbook = "ansible/playbook.yml"
    ansible.verbose = 'vvv'
    ansible.inventory_path = "ansible/hosts"
    ansible.limit = 'development'
  end
end

Есть идеи, почему это происходит и как я могу использовать nfs для общей папки?


person petekaner    schedule 27.02.2017    source источник


Ответы (1)


Это не должно быть большой проблемой — Митчелл объясняет здесь.

NFS работает, просто перебрасывая файлы и метаданные с сервера на клиент, что означает, что разрешения не могут быть изменены на полпути. Я настроил NFS по умолчанию на общий случай, то есть даже при том, что uid/gid равен 501/20, каждый пользователь на виртуальной машине должен иметь возможность писать в него (давай, попробуй!).

На практике это никогда не было проблемой для обслуживания каких-либо веб-приложений.

Если вы действительно хотите, чтобы в команде ls отображалось правильное имя пользователя, вы можете посмотреть плагин vagrant bindfs

person Frederic Henri    schedule 28.02.2017
comment
на самом деле это проблема... используя nginx и php-fpm, я получаю 403 ошибки, потому что пользователь nginx не может получить доступ к корневым файлам документа - person petekaner; 28.02.2017
comment
@petekaner У меня такая же проблема с PHP7, Centos7 и Apache. Вы уже нашли решение? - person Robin van Baalen; 19.04.2017
comment
да, я установил setenforce Permissive, а также убедился, что у вашего php-файла есть права на выполнение - person petekaner; 20.04.2017