Я использую Ubuntu 10.10 для веб-разработки с использованием фреймворка Symfony.
Обычно я устанавливаю Ubuntu Lamp (версия под ключ), захожу в систему как пользователь root и настраиваю на сервере все необходимое программное обеспечение, необходимое для работы с Symfony. (Samba, Symfony и т. Д.)
Проблема в том, что когда я root, права доступа к файлам не установлены для систем Samba и Symfony. Все, что я делаю / создаю в терминале (CLI) Ubuntu, создает права доступа к файлам для пользователя root. Конечно, я знаю, как изменить их потом, но это занимает время, которое я мог потратить на программирование.
Когда я буду готов, я использую коробку через свою сеть, создавая несколько каталогов сайтов прямо с моего компьютера на сервере. На этом сервере разработчика есть несколько сайтов, так как в каталогах согласно /var/www/
нет виртуальных хостов.
У меня вопрос, как создать или настроить пользователя после установки Ubuntu с правильными учетными данными и правами?
С помощью 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
Вместо того, чтобы входить в систему как root, попробуйте войти в систему как пользователь www-data, что и использует ubuntu при запуске apache. Это должно автоматически предоставлять соответствующие разрешения при соблюдении принципа наименьших разрешений (вы всегда должны избегать выполнения действий с правами root).