Установка разрешений папки по умолчанию для вновь созданных учетных записей

После создания новых учетных записей через WHM я обнаружил, что все папки, созданные в папке public_html, имеют разрешение 775, что часто приводит к ошибке 500 в браузере.

В настоящее время я выполняю следующую команду через SSH find . -type d -exec chmod 755 {} \; из папки public_html для каждой новой учетной записи, которую я создаю на своем VPS.

Как я могу установить разрешения по умолчанию для новых файлов/папок на всем VPS, чтобы мне не приходилось подключаться по SSH и запускать эту команду каждый раз, когда я создаю новую учетную запись на своем VPS?


person Solid I    schedule 21.11.2016    source источник


Ответы (2)


Во-первых, вы должны поместить тикет в WHM/Cpanel, потому что это неправильно. Когда WHM создает новую учетную запись, всегда создавайте с разрешениями 755 public_html

Но обходной путь с использованием пост- и пре-скриптовых хуков.

  • Создайте файл /usr/local/cpanel/scripts/postwwwacct
  • Этот файл запускается после /usr/local/cpanel/scripts/postwwwacct (каждый раз, когда система создает учетную запись cPanel)
  • chmod 755 /usr/local/cpanel/scripts/postwwwacct

Содержимое /usr/local/cpanel/scripts/postwwwacct

#!/usr/bin/php -q

// Set up our variables to be usable by PHP
$opts = array();
$argv0 = array_shift($argv);

while(count($argv)) {
    $key = array_shift($argv);
    $value = array_shift($argv);
    $opts[$key] = $value;
}


exec("chmod 755 {$opts['homedir']}/public_html");

Это исправит ваш /home/{user}/public_html на 755

Вы можете использовать документ на cpanel Хотя документация Cpanel и ее неработающие ссылки довольно несовершенны, из-за чего Google находит много копий и вставок плохого качества.

person abkrim    schedule 28.11.2016
comment
Я не думаю, что это правильное поведение, я свяжусь с хостинговой компанией, которая установила этот экземпляр WHM/cPanel, и пусть они исправят это в источнике, но ваш обходной путь — хорошее быстрое решение! Я попробую это утром. Спасибо! - person Solid I; 28.11.2016
comment
Чтобы остановить выполнение обходного пути, я просто добавляю # перед exec("chmod 755 {$opts['homedir']}/public_html");? - person Solid I; 28.11.2016
comment
Ставлю на свой пост, ошибка на коррео WHM. Что это рабочий вариант. Для остановки удалите файл /usr/local/cpanel/scripts/postwwwacct. Это необязательный файл. Читать док. - person abkrim; 29.11.2016
comment
Этот ответ не решает мою проблему. exec("chmod 755 {$opts['homedir']}/public_html"); будет изменять только существующие каталоги. Когда я создаю новую папку, она по-прежнему 775. - person Solid I; 30.11.2016
comment
Это ценный ответ, но не на мой вопрос. Я бы предложил добавить -R в команду, чтобы сделать chmod рекурсивным для всех каталогов в public_html. - person Solid I; 30.11.2016
comment
На ваш вопрос спрашивайте о конкретной проблеме: public_htmlне о других папках. Теперь вопрос в том, что я создаю новую папку, она все еще 775? Пожалуйста, откройте новый вопрос. - person abkrim; 30.11.2016
comment
Насчет -R...то же..ваш вопрос про одну папку на один процесс: create account. При создании учетной записи создаются только папки на скелете в корне. Вы путаете - person abkrim; 30.11.2016

Люди с форума cPanel помог мне разобраться в этом.

Оказывается, такое поведение происходит при использовании протокола подключения SFTP. Я изменил протокол подключения на FTP и все новые папки теперь создаются с разрешениями 755.

Я надеюсь, что это поможет кому-то!

person Solid I    schedule 30.11.2016
comment
Я проголосовал против, потому что ответ не на ваш собственный вопрос. С другой стороны, я думаю, что это показывает ряд ответов и вопросов в комментариях, которые отнюдь не помогают запутать знания о Cpanel. В ответе говорится о том, как вы подключаетесь после создания учетной записи, и вопрос касается разрешений при создании новой учетной записи. Я думаю, вам следует прочитать документацию Cpanel и, конечно, Stackoverflow. - person abkrim; 30.11.2016