Я установил и настроил apache на RedHat 7 Image на AWS. Но у меня проблемы с правами/собственностью при загрузке файлов по ssh с помощью filezilla.
Я создал пользователя ssh и добавил его домашний каталог в apache /var/www/html/ и установил на него Magento.
Оригинальная установка:
Когда я изменил на:
Что мне нужно:
Я хочу иметь возможность загружать файлы через ftp или sftp обычным пользователем.
Как мне этого добиться? Это первый раз, когда я настраиваю apache, поэтому я просто пытаюсь узнать, как сделать это правильно.
Пожалуйста, проверьте ваш apache httpd.conf. Там вы можете увидеть ServerRoot и ServerAdmin. Там у вас будет:
ServerRoot "/etc/httpd"
ServerAdmin root@localhost
Права доступа к установке или конфигурации сервера должны быть root, как показано выше, и их не рекомендуется изменять.
Но, для расположения docroot, который обычно /var/www/html, пользователем и группой будет apache. Они могут быть изменены на любого другого пользователя, кроме root. Важно изменить владельца для каталога docroot или DocumentRoot, который находится в /var/www/ или /var/www/html, на apache или любого другого пользователя, не являющегося root. Вы можете изменить его на пользователя по своему выбору. root не рекомендуется устанавливать в качестве пользователя и группы в httpd.conf
User apache
Group apache
убедитесь, что вы должны изменить владельца каталога docroot на того же пользователя, который указан в httpd.conf. По умолчанию пользователь и группа - apache. Поэтому вам нужно изменить владельца каталога docroot /var/www/html на apache, как показано ниже:
sudo chown -vR apache. /var/www/html
Теперь страницы вашего сайта начнут создавать кэш всякий раз, когда вы посещаете веб-страницу, загруженную apache.
В вашем сценарии, поскольку вы используете ssh_user в качестве пользователя, вы можете установить User:Group для желаемого местоположения каталога и всей его внутренней иерархии, например, для пути /var/www/html/, тогда вы можете сделать это с помощью следующей команды.
Синтаксис: sudo chown -vR username:groupname {путь директория-расположение}
sudo chown -vR ssh_user:ssh_user /var/www/html
sudo chown -vR apache:apache /var/lib/php/session
Если вы хотите иметь возможность загружать или передавать файлы через ftp или sftp обычным пользователем, вы можете использовать любой из FileZilla Server или WinSCP, рекомендуется войти под пользователем, владеющим директорией, а затем передавать файлы.
Убедитесь, что у вас есть пользовательские или групповые права на каталог, к которому вы пытаетесь получить доступ.
Любое веб-приложение, которое требует, чтобы все каталоги и файлы были доступны для записи с помощью uid веб-сервера, изначально небезопасно и неработоспособно. Если вы счастливы жить с этим...
Предоставьте новую группу для каждой учетной записи, которая должна иметь возможность записывать файлы -для иллюстрации я назову ее веб-писателями
Добавьте этих пользователей в эту группу -это не обязательно должна быть их основная группа (usermod -G webwriters ssh _user ; usermod -G webwriters apache ;....)
В каждом каталоге верхнего уровня, который находится в области видимости, запустите эти:
chown -R apache:webwriters $DIR
find $DIR -type f -exec chmod g+rw {} \;
find $DIR -type d -exec chmod g+rws {} \;
Теперь группа может записывать все файлы и каталоги. И когда вы создаете новый файл, он будет принадлежать группе веб-райтеров.
Отредактируйте конфигурацию /etc/ssh/sshd _, добавив -u 002
после sftpserver, и перезапустите sshd. Это гарантирует, что новые файлы, скопированные через sftp, будут доступны для записи группой. Не используйте FTP. Если вы хотите использовать scp, вам нужно установить umask в rc-файле оболочки ).
Создайте новый каталог (, если он еще не существует )в /etc/systemd/system/httpd.service.d Добавьте файл -, вы можете назвать его как хотите -содержащий:
[Service]
UMask=0002
затем перезапустите apache. Это гарантирует, что файлы, созданные веб-сервером, также получат предполагаемое право собственности/разрешения.
И, наконец, самое главное, установите HIDS (L5, LIDS, Tripwire )и научитесь им управлять. Установите fail2ban и добавьте ограничения на количество попыток входа в систему.