У меня есть веб-сервер, обслуживающий файлы из /var/www/vhosts/mysite . То , что я ищу сделать , это установить эти vhosts папку /home/myuser/vhosts , так что пользователь может войти, редактировать любые файлы и выйдите из системы . Проблема в том, что монтирование не игнорирует разрешения в этой папке. Некоторые файлы могут быть созданы www-data или другим пользователем. Если они созданы другим пользователем, то www-data также не может их прочитать или изменить.

То, что я пробовал до сих пор, - это создать bind mount, используя fstab. Папка успешно монтируется в домашнем каталоге пользователя, и с помощью acl я смог разрешить им писать в нее, назначив группу в папку с помощью rwx и добавив www-data и пользователя в группу. Мне интересно, есть ли способ привязать монтирование папки, но не затрагивать разрешения, чтобы www-данные всегда могли читать / писать / выполнять на нем без проблем, одновременно предоставляя пользователю полные права доступа.

1 ответ1

0

Вы хотите сначала добавить этих пользователей в группу www-data. Тогда предполагаемый метод должен использовать chmod g+s /home/user/vhost . Это установит SGID для этой папки, означая, что ее группа будет использоваться для новых файлов. К сожалению, это не помогает для sub dirs. Чтобы поддерживать их в актуальном состоянии, вам нужно регулярно запускать это после изменений дерева каталогов: find /home/user/vhost -type d -exec chmod g+s {} \; , Будет выполнен поиск всех подкаталогов и активирован SGID . Самое неприятное в том, что это нужно сделать с любыми родительскими каталогами перед добавлением дочерних, что означает, что иногда вам нужно запускать это несколько раз при внесении изменений, и если вы забудете это сделать, вам нужно будет просто выполнить команду chown в любом случае: find /home/user/vhost -type d -exec chown user:www-data {} \; ,

Это то, что я говорю, но я считаю, что весь этот план меня просто раздражает. На самом деле я работаю на сервере разработки с совершенно не связанными разрешениями. После внесения изменений у меня есть скрипт, который синхронизируется с сервером prod и каждый раз устанавливает все права собственности и права доступа, чтобы убедиться, что все ВСЕГДА правильно. Этот метод экономит много времени, потому что мне не нужно беспокоиться о том, почему разрешения не выполняются. Я просто запускаю сценарий, и все снова волшебным образом работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .