Поиск по блогу :

    26 июля 2010 г.

    Разрешения для общего раздела с помощью ACL(POSIX Access Control Lists)

    Не так давно, после покупки жене ноутбука Samsung R528(NP-R528-DS03UA) я столкнулся со следующей проблемой. Так как планировалось на нотике работать и мне, и жене, то соответственно, потребовался общий раздел для совместных файлов (музыка, доки, фильмы и т.п.).
    1. Раздел я создал с файловой системой ext4, в системе он обозначен, как '/dev/sda7'. 2. Также прописал его в fstab для автомонтирования при загрузке в каталог '/media/Data'.
    3. Далее, 1) создал группу family, 2) добавил туда себя и жену, 3) выставил права общему каталогу на чтение/запись для группы family.
    4. Проверил, файлы видны, можно их копировать, но возникла большая неприятность, я не могу изменить или удалить файлы добавленные женой и точно также она не может изменить или удалить файлы добавленные мной.
    5. Хотел добавить в fstab, в строку монтирования, параметр 'umask=0222', но вспомнил, что ext4 этот параметр не понимает.
    6. Я думаю, что есть более простые способы исправления сложившейся ситуации, но в данной ситуации мне помог ACL(POSIX Access Control Lists) и данный пост с форума.

    Установка и настройка

    1. Устанавливаем acl, если он еще не стоит:

    $
    sudo apt-get install acl

    2. Отмонтируем раздел, если он уже примонтирован:
    $
    sudo umount /dev/sda7

    3. Редактируем файл '/etc/fstab'
    $
    sudo nano /etc/fstab

    и добавляем в строку монтирования нужного нам раздела, параметр acl. В результате должно получиться, что-то вроде этого:
    /dev/sda7 /media/Data ext4 defaults,relatime,acl 0 0
    или, если используется UUID, то примерно так:
    UUID=ffd6d569-1146-4c31-95e0-36d47bfd187c /media/Data ext4 defaults,relatime,acl 0 0
    4. Снова монтируем устройство
    $
    sudo mount -a

    5. Ну и самое главное. Для каталога '/media/Data', выставляем права на чтение, запись и запуск для всех пользователей из группы family:
    $
    sudo setfacl -dm g:family:rwx /media/Data

    где:
    -d - установить разрешения по умолчанию;
    -m - изменить выбранные разрешения;
    g - группа, для которой выставляются разрешения;
    family - название группы;
    rwx - устанавливаемые разрешения (чтение,запись,запуск).

    6. Проверяем, применились ли наши изменения
    $
    getfacl /media/Data

    у меня это выглядит так:
    getfacl: Удаление начальных '/' из абсолютных путей
    # file: media/Data
    # owner: root
    # group: family
    user::rwx
    group::rwx
    other::rwx
    default:user::rwx
    default:group::r-x
    default:group:family:rwx
    default:mask::rwx
    default:other::r-x
    6. Для уверенности, перегружаемся.
    Все стало работать как я хотел, но правда это касается только новых файлов. Копируемые извне файлы, остаются со своими правами.

    Обновлено 27.07.2010г в 21:24