Предоставьте права пользователя на www-data, принадлежащие / var / www

В предыдущие дни, когда я использовал систему sudo (читая: древняя Red Hat), я использовал несколько методов, чтобы напомнить мне, когда я запускал как root: красное приглашение, «root» в строке заголовка и т. д. . В эти дни я запускаю sudo и не имею никаких быстрых изменений. У меня никогда не было проблемы с работой в качестве root, которая была бы решена, если бы перед командой sudo была добавлена ​​команда.

У меня есть ярлык для редактирования файлов. У меня есть скрипт bash, похожий на следующий в ~/bin/vi (и ~/bin - первая запись в моей $ PATH):

#!/bin/bash
if [[ ! -w "$1" ]]; then
  exec sudo vim "$@"
else
  exec vim "$@"
fi

Я печатаю это из памяти, поэтому будьте осторожны ошибок. Идея состоит в том, что если первый файл с именем I un un writeable, то он автоматически использует sudo. Очевидно, что этот подход не совершенен, но он достаточно хорош в течение ряда лет.

1
задан 3 April 2017 в 16:55

4 ответа

Создайте две группы: site1grp и site2grp

sudo groupadd site1grp && sudo groupadd site2grp

Добавьте www-data в обе группы.

sudo adduser www-data site1grp && sudo adduser www-data site2grp

Добавьте user1 и user2 в соответствующие группы

sudo adduser user1 site1grp && sudo adduser user2 site2grp

Измените разрешение папок вашего сайта, чтобы владелец пользователя был www-данными, а владелец группы - это соответствующая группа

sudo chown -R www-data:site1grp /var/www/site1  && sudo chown -R www-data:site2grp /var/www/site2

Теперь www-data имеет прав пользователей и групп на обоих сайтах, и каждый пользователь имеет групповые разрешения для своего сайта.

6
ответ дан 24 May 2018 в 16:16

Вы должны создать новую группу для так называемого «нового пользователя», а затем добавить в эту группу www-данные и «новый пользователь»:

sudo gpasswd -a new_user new_group

Затем вы можете изменить владельца на new_user и группу на new_group:

sudo chown -R new_user:new_group /var/www/site1

. Тогда вам нужно будет предоставить доступ на уровне группы к сайту1. www-data все равно сможет получить доступ к сайту, поскольку он принадлежит новой_группе, в то время как new_user не сможет получить доступ к сайту2, потому что он не будет принадлежать группе www-data, которой принадлежит site2.

3
ответ дан 24 May 2018 в 16:16
  • 1
    Ваш ответ путается: «Предоставляя доступ к уровню группы на сайт1», вы имели в виду «изменение группы сайтов1 в new_group», или изменения режима (chmod)? В вашем ответе не упоминается режим где угодно, что может сделать разницу в безопасности (или сломать вещи). – Lekensteyn 30 December 2013 в 03:01
  • 2
    Я хотел изменить режим (chmod), отменив все разрешения для OTHERS. – errikos 30 December 2013 в 07:43

Для тех, у кого есть корневая папка wordpress в их домашней папке:

Ubuntu / apache

Добавьте пользователя в группу www-data: CREDIT Предоставление прав на запись в www-data group Вы хотите называть usermod для своего пользователя. Таким образом, это будет:
sudo usermod -aG www-data yourUserName
Предполагая, что существует группа www-data. Проверьте, что ваш пользователь находится в группе www-data:
groups yourUserName
Вы должны получить что-то вроде:
yourUserName : yourUserGroupName www-data
yourUserGroupName, как правило, похоже на ваше имя пользователя. Рекурсивно изменить групповое владение папка, сохраняющая ваше право пользователя
chown yourUserName:www-data -R yourWebSiteFolder/*
Измените каталог на yourWebSiteFolder
cd yourWebSiteFolder
Рекурсивно измените групповые предложения для папок и подпапок, чтобы разрешить права на запись: режим
find . -type d -exec chmod -R 775 {} \;
из /home/yourUserName/yourWebSiteFolder/' изменен с 0755 (rwxr-xr-x) на 0775 (rwxrwxr-x) Рекурсивно изменить групповые представления файлов и подфайлов для разрешения разрешений на запись:
find . -type f -exec chmod -R 664 {} \;
Результат должен выглядеть примерно так:
WAS:
-rw-r--r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
CHANGED TO:
-rw-rw-r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
Эквивалент:
chmod -R ug+rw foldername
Разрешения будут похожи на 664 или 775.
2
ответ дан 24 May 2018 в 16:16

Предполагая, что все файлы уже принадлежат пользователю www-data (вы можете проверить его с помощью команды ls -slah), которая принадлежит группе www-data (следующий столбец после имени пользователя в списке файлов), вы можете просто добавить пользователя к тому же www-data, чтобы разрешить редактировать эти файлы

# usermod -aG www-data username

для существующего пользователя или

# adduser username www-data

для вновь созданного

1
ответ дан 24 May 2018 в 16:16

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

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