Работа с правами доступа групп
Linux позволяет связывать файлы с группами, что обеспечивает совместный контроль доступа. На этом этапе вы узнаете, как создать группу, изменить групповую принадлежность файла и установить соответствующие права доступа для группы.
Сначала создадим новую группу. В реальной жизни эта группа может представлять отдел или проектную команду:
sudo groupadd developers
Теперь создадим файл, который будет доступен для этой группы:
touch shared_config.txt
echo "## Development configuration settings" > shared_config.txt
echo "debug_mode=true" >> shared_config.txt
echo "log_level=verbose" >> shared_config.txt
В настоящее время этот файл принадлежит вашему пользователю и вашей основной группе. Проверим это:
ls -l shared_config.txt
Вы должны увидеть вывод, похожий на следующий:
-rw-rw-r-- 1 labex labex 61 Oct 25 13:00 shared_config.txt
Чтобы изменить групповую принадлежность файла на группу developers
, используйте команду chown
:
sudo chown labex:developers shared_config.txt
Синтаксис команды: chown пользователь:группа имя_файла
. Здесь мы оставляем пользователя labex
, но изменяем группу на developers
.
Проверьте принадлежность файла теперь:
ls -l shared_config.txt
Вы должны увидеть:
-rw-rw-r-- 1 labex developers 61 Oct 25 13:00 shared_config.txt
Обратите внимание, что группа изменилась на developers
, но права доступа остались прежними. Изменим их так, чтобы члены группы могли читать файл, но не могли его изменять, и чтобы другие пользователи не имели доступа к файлу:
chmod 640 shared_config.txt
Это устанавливает следующие права доступа:
- Владелец: Чтение и запись (
6
= 4+2
)
- Группа: Только чтение (
4
)
- Другие: Нет прав доступа (
0
)
Проверьте права доступа снова:
ls -l shared_config.txt
Теперь вы должны увидеть:
-rw-r----- 1 labex developers 61 Oct 25 13:00 shared_config.txt
Теперь члены группы developers
могут читать этот конфигурационный файл, но не могут его изменить. Пользователи, не входящие в группу developers
, не имеют доступа к файлу вообще.
Вы также можете использовать символьный режим, чтобы достичь того же результата:
chmod u=rw,g=r,o= shared_config.txt
Эта команда явно устанавливает:
- Пользователь/владелец: Чтение и запись
- Группа: Только чтение
- Другие: Нет прав доступа
Чтобы добавить пользователя в группу developers
, обычно используют следующую команду:
sudo usermod -a -G developers username
Однако это выходит за рамки данного практического занятия, так как требует создания учетных записей пользователей.