Управление правами доступа в Linux
Здесь мы опишем, как предоставить пользователю доступ для чтения/записи в определенном каталоге в Linux.
Есть два возможных способа сделать это: первый использует ACL (списки контроля доступа), а второй создает группы пользователей для управления правами доступа к файлам. Как это сделать описано ниже.
Для целей данного руководства мы будем использовать следующую настройку.
Операционная система: CentOS 7 Тестовый каталог: /shares/project1/reports Тестовый пользователь: alex Тип файловой системы: Ext4
Убедитесь, что все команды выполняются от имени пользователя root, или используйте команду sudo с эквивалентными привилегиями.
Начнем с создания каталога — reports с помощью команды mkdir:
# mkdir -p /shares/project1/reports
Использование ACL для предоставления доступа на чтение/запись к пользователю в каталоге
Важное замечание: Чтобы использовать этот метод, убедитесь, что тип вашей файловой системы Linux (например, Ext3 и Ext4, NTFS, BTRFS) поддерживает списки ACL.
1. Сначала проверьте текущий тип файловой системы в вашей системе, а также поддерживает ли ядро ACL следующим образом:
# df -T | awk '{print $1,$2,$NF}' | grep "^/dev" # grep -i acl /boot/config*
На приведенном ниже скриншоте тип файловой системы — Ext4, и ядро поддерживает списки ACL POSIX, как указано в опции CONFIG_EXT4_FS_POSIX_ACL = y.
2. Затем проверьте, смонтирована ли файловая система (раздел) с опцией ACL:
# tune2fs -l /dev/sda1 | grep acl
Из вышеприведенного вывода видно, что опция монтирования по умолчанию уже поддерживает ACL. Если он не включен, вы можете включить его для конкретного раздела ( /dev/sda3 для этого случая):
# mount -o remount,acl / # tune2fs -o acl /dev/sda3
3. Теперь пришло время назначить пользователю alex доступ на чтение/запись к определенному каталогу — reports с помощью следующих команд.
# getfacl /shares/project1/reports # Проверить настройки ACL по умолчанию для каталога # setfacl -m user:tecmint:rw /shares/project1/reports # Предоставить rw доступ пользователю alex # getfacl /shares/project1/reports # Проверить новое Настройки ACL для каталога
На приведенном выше скриншоте пользователь alex теперь имеет разрешения на чтение/запись (rw) для каталога /shares/project1/reports, как видно из выходных данных второй команды getfacl.
Теперь давайте посмотрим на второй способ назначения доступа для чтения/записи к каталогу.
Использование групп для предоставления доступа на чтение/запись к пользователю в каталоге
1. Если пользователь уже имеет группу пользователей по умолчанию (обычно с тем же именем, что и имя пользователя), просто измените владельца группы в каталоге.
# chgrp alex /shares/project1/reports
Или создайте новую группу для нескольких пользователей (которым будут предоставлены права на чтение/запись для определенного каталога) следующим образом. Однако это создаст общий каталог:
# groupadd projects
2. Затем добавьте пользователя alex в группу projects следующим образом:
# usermod -aG projects alex # добавить пользователя в проекты # groups alex # проверить группы пользователей
3. Измените владельца группы каталога на проекты:
# chgrp projects /shares/project1/reports
4. Теперь установите права на чтение/запись для членов группы:
# chmod -R 0760 /shares/projects/reports # ls -l /shares/projects/ # проверить новые разрешения
В этом руководстве мы показали, как предоставить пользователю доступ для чтения/записи в определенном каталоге в Linux. Если возникнут какие-либо проблемы, задайте их в разделе комментариев ниже.