Настройка прав для совместной работы команды разработчиков
Примечание: Убедитесь, что вы сначала выполнили Шаг 2, в котором владельцем всех директорий проекта (включая src) были назначены dev_lead:developers. Этот шаг основывается на тех настройках владения.
Команде разработчиков необходимо эффективно взаимодействовать внутри директории ~/project/phoenix_project/src. Чтобы обеспечить беспрепятственное сотрудничество, любой новый файл или директория, созданные внутри src, должны автоматически принадлежать группе developers, а не основной группе пользователя, который их создал.
Задачи
- Установите специальное право доступа для директории
~/project/phoenix_project/src, которое заставляет все новые файлы и поддиректории, созданные в ней, наследовать группу-владельца от самой директории src (то есть developers).
Требования
- Решение должно гарантировать, что новые файлы в
~/project/phoenix_project/src автоматически принадлежат группе developers.
- Для установки этого специального права необходимо использовать команду
chmod.
- Вам может потребоваться
sudo для установки прав на директории, принадлежащие другим пользователям.
Подсказки
- Это специальное право доступа называется «set group ID» или бит
setgid.
- Вы можете применить бит
setgid, используя либо символьную (g+s), либо числовую нотацию.
- В числовой нотации бит
setgid имеет значение 2. Он ставится перед стандартными тремя цифрами прав доступа (например, 2770).
Примеры
После выполнения этой задачи вы должны увидеть примерно следующее:
$ ls -ld ~/project/phoenix_project/src/
drwxrws--- 2 dev_lead developers 6 Sep 3 16:00 ~/project/phoenix_project/src/
Символ s в позиции выполнения для группы указывает на то, что бит setgid установлен и у группы есть права на выполнение. Теперь при создании нового файла:
$ touch ~/project/phoenix_project/src/new_file.txt
$ ls -l ~/project/phoenix_project/src/new_file.txt
-rw-rw---- 1 dev_lead developers 0 Sep 3 16:05 new_file.txt
Обратите внимание, что новый файл автоматически принадлежит группе developers, даже если вы вошли в систему под другим пользователем. Это обеспечивает совместную работу команды разработчиков при сохранении правильного владения группой.
Права доступа показывают:
- Владелец (
dev_lead) имеет права на чтение и запись.
- Группа (
developers) имеет права на чтение и запись.
- Остальные не имеют никаких прав.
- Строчная
s в позиции выполнения для группы указывает на установленный бит setgid и наличие прав на выполнение у группы.