1

В своей работе я иногда пишу небольшие приложения для визуальной информации на веб-платформе (LAOP-jQuery). Некоторые из моих коллег тоже начали это делать, чтобы иметь лучший доступ к информации. Они, однако, не так хорошо знакомы с командной строкой Linux, как я (и я на самом деле только новичок), и поэтому каждый раз, когда кто-то не хочет создавать новое приложение, они связываются со мной, и я создаю фиктивный поддомен (новый папку на сервере) с запрошенным именем и пусть они вступят во владение. Я просто копирую папку, которая содержит стандартный шаблон html-php с несколькими функциями и подключениями к базам данных, которые мы используем.

В настоящее время я пытаюсь ограничить свою работу, создав небольшое приложение, которое выполняет эту работу за меня. Это довольно просто и глупо на самом деле. Они переходят по указанной мной ссылке, вводят пароль и доменное имя по своему выбору и затем нажимают "создать". За кулисами вызывается функция php-system(), которая копирует каталог с именем "dummy" в /var /www /oursite /apps /.

Пример: Джейн переходит на страницу "Создать новый домен". Она вводит правильный пароль и выбирает имя для своего домена "foobar".

Системная функция называется:

система ('cp -r ../../ пустышка ../../apps/'.filter_input(INPUT_POST,'domain_name '));

// что переводится как: system ('cp -r ../../ пустышка ../../apps/foobar ');

и, таким образом, теперь у меня есть каталог /apps /foobar

Здесь возникает проблема. Права доступа к "foobar" следующие:

drwxr-xr-x 6 www-data www-data 4096 1 марта 11:48 foobar

То есть принадлежит пользователю и группе www-data:www-data

Когда я подключаюсь к этой папке (через NetBeans) с помощью пользователя разработчика "dev", который является частью группы www-данных, я могу загрузить файлы, но не могу редактировать их, так как группа www-data не имеет разрешения на запись в недавно созданный каталог "foobar".

Как я могу заставить эту работу работать так, как я хочу?

Заранее спасибо Бенедикт

2 ответа2

0

Я получил помощь от моего друга. Он в основном рассказал мне о функции снятия маски в php, и хотя это, вероятно, не самый безопасный метод и не «лучший метод», это то, что я сделал:

$old = umask(0); // clear permissions for new files/dirs

system('cp -r ../../dummy ../../apps/'.filter_input(INPUT_POST,'domain_name')); // copy the dummy

chmod('../../apps/'.filter_input(INPUT_POST,'domain_name'),0775); // grant the group www-data permissions to edit the file/dir

umask($old); // restore original mask

Если у кого-то есть способ получше, я бы все равно хотел его услышать.

Спасибо всем

Бенедикт

0

Умный трюк, который вы можете сделать, это выполнить это: sudo adduser yourusername www-data .

Что он делает: эти команды добавляют вас в группу www-данных, что открывает вам доступ к файлу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .