Назад | Перейти на главную страницу

Достойное руководство для разрешений пользователей / групп в Linux

Я уверен, что об этом уже неоднократно спрашивали, но я не смог получить достойного руководства по разрешениям файлов / папок для Linux.

Я хочу настроить сервер nginx / apache с PHP и FTP-сервер, например vsftpd. Обычно у меня возникают проблемы: веб-сервер не может прочитать файл, загруженный через учетную запись FTP, или я вообще не могу загружать файлы на сервер. Мой скрипт PHP также должен запускать инструмент командной строки и, следовательно, потребует надлежащих разрешений для запуска через сервер. Я обошел все это, попробовав chmodding или chowning, но я все еще не уверен в безопасной настройке.

Есть ли какие-нибудь учебники / книги, которые могут помочь мне правильно изучить концепции на практике?

Я обнаружил, что лучший способ решить эту проблему - использовать списки управления доступом POSIX. Обычно эти четыре команды дают вам то, что вы хотите.

setfacl -Rdm apache:rwx my/dir
setfacl -Rm apache:rwx my/dir
setfacl -Rdm user:rwx my/dir
setfacl -Rm user:rwx my/dir

Это устанавливает ACL, который разрешает как пользователю «пользователь», так и пользователю «apache» одинаковый уровень доступа, независимо от того, что указано в стандартных разрешениях для файлов. Кроме того, новые файлы и каталоги, созданные в этом каталоге, унаследуют те же права.

В ближайшей поисковой системе доступно огромное количество информации. В Разрешения файловой системы статья неплохая.

Вы также найдете полезную информацию в этом вопросе: Под каким пользователем должны работать NGinx и PHP?.

Две интересные статьи:

http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilesp.html

http://crunchtools.com/unixlinux-filesystem-permissions-101/

Если вас не волнует доступ с одного PHP к файлам PHP другого сайта - вы можете использовать реальных пользователей FTP, которые все сопоставлены с пользователем apache, и все documet_root также принадлежат пользователю apache.