Как передать пользователя www-data в папку в моей домашней папке?

У меня есть папка: /home/myuser/folderA

Я хочу предоставить пользователю www-data доступ на запись к описанному выше, в то время как «myuser» продолжает иметь обычный доступ (поскольку в любом случае это домашняя папка myuser) .

Какие команды мне нужно использовать?

Примечание. Я не хочу, чтобы www-data имел доступ к любым другим папкам в /home/myuser/.

Спасибо заранее.

31
задан 13 October 2018 в 16:35

2 ответа

Во-первых, добавьте себя в группу www-data

usermod -a -G www-data (your username)

Затем:

chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA

Должен добиться цели если полномочия на Вашем /home/myuser не разрешайте другой пользовательский доступ.

Первая команда изменяет владение группы папки к тому из веб-сервера. Вторая команда дает членам www-data чтение группы, запись, права вводить-каталога и группа s флаг гарантирует, чтобы любые файлы, которые создаются в том каталоге, взяли www-data как группа - поэтому, если Вы создаете файл как myuser www-data у пользователя будет доступ.

Nb. это также зависит от umask настройки и Вашей учетной записи пользователя и веб-сервера: необходимо удостовериться, что файлы, созданные в folderA, имеют группу rw доступ (и каталоги создается в группе потребности rwx)

Если Ваш веб-сервер не имеет, вводят права в Ваш /home/myuser dir (довольно разумный) затем, это не собирается добираться там, если Вы не делаете что-то еще. Два solns:

  1. sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA (это - ужасный взлом и должно было бы быть повторено после перезагрузки. Но мощный прием, также может использоваться для создания папок доступными в тюрьмах SSH.)

  2. Просто переместите совместно используемую папку где-то в другом месте, например. /home/shared-stuff/folderA.

2-я опция является самой хорошей. Скажем, материал в folderA действительно общедоступен, и Вы не заботитесь, кто видит его, можно настроить его как

sudo mkdir -m777 /home/shared-stuff

Затем можно вставить это, скажем, folderA с полномочиями как выше, и folderB, к которому www-данные не должны иметь доступа с различными полномочиями, например.

$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data   4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser     4096 Jan 17 21:46 folderB
46
ответ дан 13 October 2018 в 16:35

Другой способ - изменить имя пользователя непосредственно в конфигурации Apache, если это ваш локальный компьютер, и вы сохраняете изображения откуда-то еще, что нарушает любые разрешения, сделанные для этой папки. Это также нужно сделать, если у вас есть только 1 пользователь и вам нет дела до www-данных!

$ sudo vi /etc/apache2/apache2.conf

Найдите пользователя и группу и укажите свои
User <Your User>
Group <Your Group>

$ sudo service apache2 restart
0
ответ дан 13 October 2018 в 16:35

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

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