Поиск по сайту:

Назначьте пользователю доступ на чтение/запись в определенном каталоге в 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 ознакомьтесь с нашими следующими руководствами.

  1. Как использовать ACL (списки контроля доступа) для настройки дисковых квот для пользователей/групп
  2. Как использовать 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. Если возникнут какие-либо проблемы, задайте их в разделе комментариев ниже.