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

public_html разрешения

У меня есть папка public_html для пользователя. Меняю разрешения по инструкции на сайте:

chmod 701 /home/*

chmod 705 /home/*/public_html 
chmod 604 /home/*/public_html/*.html 
chmod 705 /home/*/public_html/cgi-bin 

и файлы уже в public_html затем будут видны в Интернете.

Если пользователь загружает новые файлы в public_html папка, то ее не видно.

Я также побежал chcon -R -t httpd_user_content_t home/*/public_html.

Что мне не хватает, чтобы пользователь мог загружать свои файлы и видеть их в Интернете?

Как упоминалось в staticsan, это похоже на установку случая, которую исправит umask. Если вам нужен более тонкий контроль над разрешениями, не делая так, чтобы КАЖДЫЙ файл, который создают пользователи, получал доступ к миру, вы можете использовать списки управления доступом к файлам, чтобы установить значение по умолчанию для каталогов public_html для других чтения + выполнения с

setfacl --set d:o:rx /home*/public_html

Независимо от того, что установлено в umask, если пользователь может писать в этот каталог, значения по умолчанию для файла всегда будут o + r (x для каталогов). Ваш вывод ls -l будет выглядеть примерно так:

drwxrwxr-x + 3 пользователя пользователь 4096 02.12.2009 21:30 public_html /

Плюс в конце разрешений показывает, что есть ACL, который вы можете просмотреть, используя

getfacl public_html

Существует компромисс, поскольку теперь разрешения неочевидны, и вам нужно getfacl, чтобы увидеть более подробную информацию, но вы получаете больше контроля над тем, где именно вы хотите, чтобы разрешения были отличными от глобальных по умолчанию.

Вам нужно проверить их umask настройка как это контролирует разрешения, которые получают вновь созданные файлы. Большинство дистрибутивов устанавливают маску на 022 который предоставит файлы для группового чтения и общего чтения, но другие дистрибутивы имеют более строгую маску, которая устанавливает только права владельца.