Назначьте пользователю доступ на чтение/запись в определенном каталоге в Linux
В предыдущей статье мы показали вам, как создать общий каталог в Linux. Здесь мы опишем, как предоставить пользователю доступ на чтение/запись в определенном каталоге в Linux.
Есть два возможных способа сделать это: первый — использование ACL (списков контроля доступа), а второй — создание групп пользователей для управления разрешениями на файлы, как описано ниже.
Для целей этого урока мы будем использовать следующую настройку.
Operating system: CentOS 7
Test directory: /shares/project1/reports
Test user: tecmint
Filesystem type: 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. Теперь пришло время назначить пользователю tecmint
доступ на чтение/запись к определенному каталогу под названием reports
, выполнив следующие команды.
getfacl /shares/project1/reports # Check the default ACL settings for the directory
setfacl -m user:tecmint:rw /shares/project1/reports # Give rw access to user tecmint
getfacl /shares/project1/reports # Check new ACL settings for the directory
На снимке экрана выше пользователь tecmint
теперь имеет разрешения на чтение/запись (rw) в каталоге /shares/project1/reports, как видно из выходных данных второго . команда getfacl.
Для получения дополнительной информации о списках ACL ознакомьтесь с нашими следующими руководствами.
- Как использовать ACL (списки контроля доступа) для настройки дисковых квот для пользователей/групп
- Как использовать ACL (списки контроля доступа) для подключения общих сетевых ресурсов
Теперь давайте рассмотрим второй метод назначения доступа для чтения/записи к каталогу.
Использование групп для предоставления пользователю доступа на чтение/запись в каталоге
1. Если у пользователя уже есть группа пользователей по умолчанию (обычно с тем же именем, что и имя пользователя), просто измените владельца группы в каталоге.
chgrp tecmint /shares/project1/reports
Альтернативно создайте новую группу для нескольких пользователей (которым будут предоставлены права на чтение/запись в определенном каталоге), как показано ниже. Однако при этом будет создан общий каталог:
groupadd projects
2. Затем добавьте пользователя tecmint
в группу projects
следующим образом:
usermod -aG projects tecmint # add user to projects
groups tecmint # check users groups
3. Измените владельца группы каталога на проекты:
chgrp projects /shares/project1/reports
4. Теперь установите доступ на чтение/запись для участников группы:
chmod -R 0760 /shares/projects/reports
ls -l /shares/projects/ #check new permissions
Вот и все! В этом уроке мы показали вам, как предоставить пользователю доступ на чтение/запись в определенном каталоге в Linux. Если возникнут какие-либо проблемы, задайте их в разделе комментариев ниже.