Как установить структуру разрешений для нескольких пользователей, редактирующих несколько сайтов в /var/www в Ubuntu 9.10?

Я настраиваю сервер Ubuntu, который будет иметь 3 или 4 виртуальных хоста, с которыми я хочу, чтобы пользователи могли работать (добавлять новые файлы, редактировать старые файлы и т. Д.). В настоящее время я планирую хранить сайты в /var/www но не будет против его перемещения.

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

Добавлено: Я должен также отметить, что каждый пользователь будет входить через SSH/sFTP. Пользователям никогда не нужно будет ничего делать на сервере.

1 ответ

Решение

Вы должны использовать группу для каждого сайта. И сделать всех пользователей, которым нужен доступ для записи, быть членами соответствующей группы.

groupadd site1_com
mkdir /var/www/www.site1.com
chgrp site1_com /var/www/www.site1.com
find /var/www/www.site1.com -type d -print0|xargs -0 chmod g=rwxs
chmod -R g+rw /var/www/www.site1.com
usermod -aG site1_com user1

Теперь каждый раз, когда пользователи создают файлы в папке /var/www/www.site1.com, они должны использовать umask 0002 (в ~/.bashrc или в сценарии развертывания) или они должны установить разрешение для группы на чтение и запись. chmod -R g+rw /var/www/www.site1.com 2>/dev/null,

Другим решением для установки разрешений было бы использование dnotify. Создайте /usr/local/sbin/dnotify_handler-reset_perms.sh скрипт со следующим содержанием:

#! /bin/sh
CHANGED_FOLDER=$1
find $CHANGED_FOLDER -maxdepth 1 -mmin 0 -not -perm -g+w -exec chmod g+w {} \;

И добавить в /etc/rc.local:

dnotify --recursive /var/www/www.site1.com --create --execute --background /usr/local/sbin/dnotify_handler-reset_perms.sh
Другие вопросы по тегам