Как сделать раздел жесткого диска доступным нескольким пользователям

Sep 12, 2017   #linux  #cli 

Данная заметка написана для начинающих пользователей Linux. В ней описывается как примонтировать раздел жесткого диска таким образом, что бы у нескольких пользователей в системе были права на доступ к файлам (на чтение и запись). Вся информация подходит только для файловых систем использующих unix права доступа (таких как ext3, ext4 и т.п.) и не подходит для файловых систем NTFS и FAT.

Допустим, у нас есть два пользователя состоящие в разных группах

sudo cat /etc/passwd

ruslan:x:1000:1000:Руслан:/home/ruslan:/bin/zsh
marina:x:1001:1001:Марина:/home/marina:/bin/bash

В данном случае файл созданный одним пользователем не может быть прочитан или изменен другим пользователем. Нам же необходимо сделать так, что бы у обоих пользователей по-умолчанию была возможность просматривать и редактировать файлы друг друга. Для этого добавляем новую группу users (можно назвать её как угодно):

sudo groupadd users

Добавляем в данную группу наших пользователей:

sudo gpasswd -a ruslan users
sudo gpasswd -a marina users

Теперь подключим наш раздел жесткого диска. К примеру, мы хотим смонтировать раздел в директорию /mnt/data. Добавляем запись в файл /etc/ftab:

UUID=298cf7e7-634e-4f21-bd49-358cb02de76c    /mnt/data   ext4    defaults    0 2

В поле UUID вы должны прописать идентификатор своего раздела, который можно узнать выполнив команду sudo blkid.

Создаем необходимую директорию и меняем её группу на users:

sudo mkdir /mnt/data
sudo chgrp users /mnt/data
sudo chmod g+s /mnt/data

Последней командой мы выставляем бит setgid для директории. Данный бит нужен для того, что бы создаваемые в директории файлы наследовали группу этой директирии, вместо группы пользователя создавшего файл. Таким образом все новые файлы будут принадлежать группе users и пользователи смогут совместно работать с ними. Все создаваемые поддиректории также будут автоматически получать бит setgid.

Теперь можете смонтировать директорию (sudo mount -a) и начинать работать с расшареным диском. Хочу отметить, что всё вышесказанное подходит не только для создания общедоступных дисков, но и для совершенно любой директории на существующем диске (просто включите директорию в необходимую группу и установите бит setgid).