Управлять правами доступа в файловом хранилище на уровне файловой системы
В файловом хранилище с протоколом NFSv4 можно управлять правами доступа к файлам и папкам на уровне файловой системы.
Принцип работы
Файлы и папки в файловом хранилище с протоколом NFSv4 поддерживают стандартное разграничение прав доступа как в Unix-системах. Доступ на ч тение, запись и выполнение файлов реализован через Identity Mapping (IDM) — права доступа проверяются на основе ID пользователя и ID группы пользователей.
Группа пользователей — это пользователи с одинаковыми правами доступа. Группы делятся на два типа:
- первичная группа (Primary Group) — группа, которую операционная система присваивает пользователю;
- вторичная группа (Secondary Group) — одна или несколько групп, к которым также принадлежит пользователь.
Каждого пользователя можно добавить максимум в 16 групп: в одну первичную и 15 вторичных групп.
По умолчанию права на чтение, запись и выполнение файлов есть только у пользователя root
. У остальных пользователей есть права только на чтение. От имени root
можно настроить права доступа к папкам и файлам для пользователей и для групп пользователей.
Формат прав доступа
Пример прав доступа:
drwxrwxrwx 3 root root 21 Jun 13 14:00 .
drwxr-xr-x 4 root root 4096 Jun 13 13:44 ..
drwxr-xr-x 2 root root 6 Jun 13 14:00 directory
-rw-rw-r-- 1 first first 0 Jun 13 09:45 file.txt
Здесь:
- первый символ:
d
— флаг директории;-
— флаг файла;
- тройки символов вида
rwx
:- первая тройка символов вида
rwx
— права пользователя; - вторая тройка символов вида
rwx
— права группы; - третья тройка символов вида
rwx
— права всех остальных, кто не является пользователем или не входит в группу; r
— права на чтение (read);w
— права на запись (write);x
— права на выполнение (execute);
- первая тройка символов вида
- первый столбец с именами — имена пользователей, которые являются владельцами папки или файла;
- второй столбец с именами — имена групп, которые являются владельцами папки или файла;
- последний столбец — имена файлов или директорий.
Настроить права доступа для пользователя
Пользователь root
может создавать пользователей и выдавать им права на папки. Если создать пользователя, папку и назначить пользователя владельцем папки, то только у этого пользователя будут полные права на чтение, запись и выполнение файлов в папке.
- Примонтируйте файловое хранилище.
- Создайте пользователя.
- Назначьте пользователя владельцем папки.
- Проверьте права пользователя.
1. Примонтировать файловое хранилище к выделенному или облачному серверу
Процесс монтирования зависит от операционной системы на сервере и протокола файлового хранилища: NFSv4 или CIFS SMBv3.
NFSv4
CIFS SMBv3
Linux
Windows
-
Откройте CLI.
-
Установите пакет для работы с протоколом NFS:
sudo apt install nfs-common
-
Создайте папку для монтирования хранилища:
sudo mkdir -p /mnt/nfs
-
Примонтируйте файловое хранилище:
sudo mount -vt nfs "<filestorage_ip_address>:/shares/share-<mountpoint_uuid>" /mnt/nfs
Укажите:
<filestorage_ip_address>
— IP-адрес файлового хранилища. Можно посмотреть в панели управления в разделе Облачная платформа → Файловое храни лище → страница хранилища → вкладка Настройки → поле IP;<mountpoint_uuid>
— ID точки монтирования. Можно посмотреть в панели управления в разделе Облачная платформа → Файловое хранилище → страница хранилища → блок Подключение → вкладка GNU/Linux.
Файловое хранилище работает только с NFS-клиентом версии NFSv4. По умолчанию в ОС Windows поддерживаются NFS-клиенты версий NFSv2 и NFSv3. Подробнее о версиях NFS в статье Обзор NFS документации Microsoft.
Для работы с файловым хранилищем из Windows мы рекомендуем использовать файловое хранилище с протоколом CIFS. Если необходимо подключить хранилище с протоколом NFS, установите и используйте клиент, поддерживающий протокол NFSv4.
Linux
Windows
-
Откройте CLI.
-
Установите пакет для работы с протоколом CIFS:
sudo apt install cifs-utils
-
Создайте папку для монтирования хранилища:
sudo mkdir -p /mnt/cifs
-
Примонтируйте файловое хранилище:
sudo mount.cifs -o guest //<filestorage_ip_address>/share-<mountpoint_uuid> /mnt/cifs
Укажите:
<filestorage_ip_address>
— IP-адрес файлового хранилища. Можно посмотреть в панели управления в разделе Облачная платформа → Файловое хранилище → страница хранилища → вкладка Настройки → поле IP;<mountpoint_uuid>
— ID точки монтирования. Можно посмотреть в панели управления в разделе Облачная платформа → Файловое хранилище → страница хранилища → блок Подключение → вкладка GNU/Linux.
-
Откройте CLI.
-
Примонтируйте файловое хранилище:
net use X: \\<filestorage_ip_address>\share-<mountpoint_uuid>
Укажите:
<filestorage_ip_address>
— IP-адрес файлового хранилища. Можно посмотреть в панели управления в разделе Облачная платформа → Файловое хранилище → страница хранилища → вкладка Настройки → поле IP;<mountpoint_uuid>
— ID точки монтирования. Можно посмотреть в панели управления в разделе Облачная платформа → Файловое хранилище → страница хранилища → блок Подключение → вкладка Windows.
2. Создать пользователя
-
Создайте пользователя:
sudo useradd <user_name> -u <user_id>
Укажите:
<user_name>
— имя пользователя;- опционально:
<user_id>
— ID пользователя, например1000
.
Пользователь будет автоматически добавлен в первичную группу (Primary Group) с таким же именем, как у пользователя.
-
Проверьте, что пользователь создан:
grep <user_name> /etc/passwd
Укажите
<user_name>
— имя пользователя.Пример ответа:
firstuser:x:1000:1000::/home/firstuser:/bin/sh
Здесь:
firstuser
— имя пользователя;- первое значение
1000
— ID пользователя; - второе значение
1000
— ID первичной группы пользователя; /home/firstuser
— домашняя папка пользователя.
3. Назначить пользователя владельцем папки
-
Создайте папку для пользователя:
sudo mkdir -p /mnt/nfs/<directory_name>
Укажите
<directory_name>
— имя папки. -
Назначьте пользователя владельцем папки:
chown <user_name>:<group_name> <directory_name>
Укажите:
<user_name>
— имя пользователя;<group_name>
— имя первичной группы пользователя, совпадает с именем пользователя;<directory_name>
— имя папки.
4. Проверить права пользователя
-
Перейдите в созданную папку:
cd /mnt/nfs/<directory_name>
Укажите
<directory_name>