Установите/var/www для двух групп

У меня есть две группы. ftpgroup и www-данные. Я использую proftpd и mysql для хранения пользователей FTP и их домов. Когда пользователь регистрируется, это создает папку сначала и затем создает учетную запись пользователя в MySQL. Моя проблема заключается в том, что у апача, кажется, нет проблемы при создании каталога. Пользователи могут затем войти в систему, но впоследствии у них нет доступа для записи. То же идет для корневого каталога. Пользователи наследовали группу ftpgroup и ftpuser, когда они создаются в базе данных SQL и затем ограничиваются своими корневыми каталогами. Я также просто видел, что мой основной пользователь не может записать в их корневом каталоге.

Полномочия для/var/www:

drwxr-xr-x 4 www-data ftpgroup 4096 Jan 22 21:28 /var/www

Я могу, конечно, chown -R ftpuser:ftpgroup /var/www но затем Apache больше не может писать в /var/www/html/accounts

Я пытался установить chown -R ftpuser:www-data /var/www но затем я все еще не мог создать файл с апачем и, когда установлено на chown -R www-data:ftpgroup Я не могу изменить файлы с ftp. Другой поставленный вопрос - то, какие проблемы будут повышенными апачем с полномочиями, когда php создает новый каталог после рассмотрения полномочий.

Текущий сценарий для создания папки

public function CreateUserFolder($arg,$arg2,$arg3) {
    if(file_exists(ROOT_PATH.'/accounts/'.$arg)) {
        echo "User Exists";

    }
    else {
    mkdir(ROOT_PATH.'/accounts/'.$arg, 0777, true);
    self::CreateFTPAccount($arg,$arg2,$arg3);
    }
}
0
задан 24 January 2016 в 00:41

1 ответ

Я не уверен, составило ли это действительно как фиксация или нет, но это - то, что я сделал для создания его так, чтобы пользователи могли записать в свой каталог.

chown -R ftpuser:ftpgroup /var/www

Впоследствии в /etc/apache2/envvars

# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data //Replaced
export APACHE_RUN_GROUP=www-data //Replaced

И просто замененный это

# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=ftpuser
export APACHE_RUN_GROUP=ftpgroup

До сих пор я не видел проблем, и все работает отлично.

0
ответ дан 29 September 2019 в 13:43

Другие вопросы по тегам:

Похожие вопросы: