Как связать монтирование папки в домашних каталогах нескольких пользователей с полными правами

Как связать монтирование папки в домашних каталогах нескольких пользователей с полными правами

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

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

решение1

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

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

Связанный контент