Управление правами доступа в 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.

Проверить поддержку ACL

2. Затем проверьте, смонтирована ли файловая система (раздел) с опцией ACL:

# tune2fs -l /dev/sda1 | grep acl

Проверить поддержку 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 для каталога

Предоставить доступ на чтение/запись к каталогу с помощью 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. Если возникнут какие-либо проблемы, задайте их в разделе комментариев ниже.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *