Предупреждение для этого раздела, это рекомендуется только в том случае, если вы используете только веб-хостинг -, apache не предназначен для доступа к домашней папке пользователя (другое предложение в конце ответ может быть более подходящим ).
www-data
группа )должна иметь всех пользователей, использующих службу www
, ограничивая доступ друг к другу. /home
должен иметь права www-data:user
chown www-data:me /home/me
ИЛИ
www-data
группа )должна иметь всех пользователей, использующих службу www
при ограничении доступа друг к другу. chown me:me /home/me
/home
принадлежащим apachechown www-data:root /home
Таким образом, apache будет иметь доступ к нужному www
каталогу, а пользователи не будут иметь доступа к папкам других пользователей.
Ключевым моментом здесь является групповое разрешение, совместно используемое между пользователями, в то время как сам apache является пользователем, который не доступен другим пользователям, например chown www:me /home/me
держать me
изолированным от другого пользователя, предоставляя доступ apache и мне (и chown me:www /home/me
позволят всем участникам группы www получить доступ к папке me
)
Каталог www
должен присутствовать в расположении, принадлежащем apache(www-data
пользователю )в текущих настройках конфигурации /home/me
до www-data:me
или /home
до www-data:root
— это обходной путь, потому что вы находите www
внутри пользовательского каталога.
Вот почему расположение по умолчанию www
находится в /var
, а не в домашнем каталоге,разрешить apache и пользователю иметь доступ к www
без предоставления apache ненужного доступа (, как в этом случае доступ ко всей папке пользователя)
Если ваша домашняя папка только предназначена дляwww
(использования в Интернете ), вы согласны с текущим предложением/конфигурацией, теперь, если вы используете систему для дополнительных целей, а не для веб-хостинга; тогда www
не должен находиться в папке /home
, а в другом месте, например /var
; в этом случае вам нужно будет удалить использование ChrootDirectory
и вместо этого перейти к классической конфигурации, в которой доступ к файлу будет управляться только с помощью разрешения на доступ к файлу, вот некоторые сведения об ограничении для классического пользователя.
Если вам нужны безопасность, разделение, веб-хостинг и другое использование Linux/сервера для каждого пользователя, вам потребуется реализовать другое решение, развивающее виртуализацию и/или песочницу.
Обратите внимание, что есть много других способов добиться того, о чем вы просите, но этот самый быстрый для вашей конфигурации. Прочтите раздел Окончательное предложение ниже, чтобы найти более подходящую реализацию.
Реализация зависит от целевого уровня безопасности и целевого использования. Таким образом, одна конфигурация может быть отличной для одной ситуации и в то же время плохой для другой.
Ваша текущая конфигурация не далека от классической, где вместо ChrootDirectory
классических прав доступа к файлам, группы и уровня доступа пользователя будут использоваться для управления разделением между каждым пользователем ssh. Я предполагаю, что для этого вам просто не хватает уровня доступа пользователя в вашей конфигурации. Вот некоторые подробности о том, как реализовать это здесь , здесь и здесь (, где говорится, что использование ChrootDirectory
в дополнение к этому является хорошей практикой безопасности)
Первый PermitRootLogin yes
никогда не следует использовать, вместо этого добавьте пользователя me
в suders.Затем root будет доступен через пользователя me
с sudo su
или su
.
Если вы нацелены на усиленную безопасность, можно использовать функцию ядра user space
, которая полностью разделит каждого пользователя, но это совершенно другая конфигурация. Этого можно добиться с помощью собственных инструментов Linux и/или firejail для разделения файлов/сети и т. д.
Кроме того, в той же области повышенной безопасности следует использовать аутентификацию с закрытым/открытым ключом вместоPasswordAuthentication yes
SSHFS также может быть альтернативой для разделения размещенного файла.
Также вот несколько интересных ссылок по теме:
Наконец, что касается вашей конфигурации, я бы просто предложил
PermitRootLogin
/home
права. /home
, а используйте структуру, подобную /var/apache/user1,user2,etc
. затем используйтеChrootDirectory /var/apache/
/home
, а использование структуры, подобной/var/apache/user1,user2,etc
без с использованием ChrootDirectory
, а затем управление разрешением с правами доступа к файлу. Необходимо удалить пакет conky
:
sudo apt purge --auto-remove conky