Ubuntu учетные данные пользователя, права доступа к файлам

Я использую Ubuntu 10.10 для веб-разработки с использованием фреймворка Symfony.

Обычно я устанавливаю Ubuntu Lamp (версия под ключ), захожу в систему как пользователь root и настраиваю на сервере все необходимое программное обеспечение, необходимое для работы с Symfony. (Samba, Symfony и т. Д.)

Проблема в том, что когда я root, права доступа к файлам не установлены для систем Samba и Symfony. Все, что я делаю / создаю в терминале (CLI) Ubuntu, создает права доступа к файлам для пользователя root. Конечно, я знаю, как изменить их потом, но это занимает время, которое я мог потратить на программирование.

Когда я буду готов, я использую коробку через свою сеть, создавая несколько каталогов сайтов прямо с моего компьютера на сервере. На этом сервере разработчика есть несколько сайтов, так как в каталогах согласно /var/www/ нет виртуальных хостов.

У меня вопрос, как создать или настроить пользователя после установки Ubuntu с правильными учетными данными и правами?

1
задан 13 March 2012 в 18:34

2 ответа

С помощью ACL вы можете создать группу для этой цели и добавить пользователя в группу, так что получение нужного материала для каждого нового пользователя так просто:

sudo usermod -a -G developers $username

Это займет немного работы, однако, чтобы начать. Это как минимум для Ubuntu 10.10. Сначала смонтируйте файловые системы с опцией acl в /etc/fstab.

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 по умолчанию, acl 0 1

sudo mount -o remount,acl /

Затем создайте группу, к которой пользователь может принадлежать для этой цели.

sudo groupadd developers
sudo usermod -a -G developers $username

Пользователь должен выйти из системы и войти снова, чтобы стать членом группы разработчиков.

Конечно, не делайте этого, если у вас есть содержимое в каталоге / var / www, которое вы хотите, но просто для иллюстрации настройки его запуска:

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root.developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

Затем замените ссылки на "/ var / www "with" / var / www / public "в конфигурационном файле и перезагрузите.

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

Если мы хотим ограничить удаление и переименование для всех, кроме пользователя, который создал файл:

sudo chmod +t /var/www/public

Таким образом, если мы хотим создать каталоги для каркасов, которые существуют вне документа Apache root или, может быть, создать каталоги, доступные для записи на сервере, это все еще просто.

Каталог журналов, доступных для записи в Apache:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

Каталог читаемых в Apache библиотек:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/lib
sudo chmod 0750 /var/www/lib
0
ответ дан 13 March 2012 в 18:34

Вместо того, чтобы входить в систему как root, попробуйте войти в систему как пользователь www-data, что и использует ubuntu при запуске apache. Это должно автоматически предоставлять соответствующие разрешения при соблюдении принципа наименьших разрешений (вы всегда должны избегать выполнения действий с правами root).

0
ответ дан 13 March 2012 в 18:34

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

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