Продолжение темы, рассмотренной в посте:
http://noteasyway.blogspot.com/2011/09/linux.html
Допустим на вашей машине с ОС Linux есть несколько пользователей, для которых необходимо организовать общий доступ к файлам в определенном каталоге. Для примера можно рассмотреть, допустим, ноутбук и архив семейных фотографии.
Для того, чтобы избавиться от минусов стандартного подхода и получить возможности удобного наследования разрешений на общий для нескольких пользователей каталог, можно воспользоваться следующим инструментом - bindfs.
Использование bindfs:
Для установки в debian подобных дистрибутивах:
bindfs - mirrors or overlays a local directory with altered permissions
Подробная документация по bindfs:
Замечание. В случае, когда требуются права пользователя root в примерах в начале командной строки используется - #, когда обычный пользователь - %. Для логина суперпользователем:
или, например для пользователей Ubuntu:
и для переключения между пользователями:
Создадим общую директорию для нескольких пользователей, например в домашнем каталоге пользователя:
и аналогичную директорию у пользователя userB, куда будет зеркально копироваться содержимое директории пользователя userA с необходимыми разрешениями:
Добавим группу groupAB и пользователей userA и userB в эту группу:
Далее, любым текстовым редактором произведем необходимые настройки в файле /etc/fstab:
perm=0775 - права доступа rwxrwxr-x на директории и rw-rw-r-- на файлы;
mirror=@groupAB - владельцем файлов будет являться пользователи из группы groupAB;
group=groupAB - группа для файлов будет groupAB
Для доступа к файлам в каталоге share пользователем userB необходимо выполнить:
Для проверки разрешений можно воспользоваться командой:
Как будет видно из вывода, владельцем файлов будет являться пользователь userB и группа установлена в groupAB, что в принципе не очень удобно и можно настройки изменить следующим образом:
В файле /etc/fstab, произвести следующие изменения:
perm=0755 - получим права доступа rwxr-xr-x на директории и rw-r--r-- на файлы;
group=userB - группа для файлов будет group, первичная группа пользователя userB;
Теперь владелец и группа в общем каталоге будут совпадать. Так же не будет никаких проблем с изменением разрешений на файлы при копировании и перемещении в данный каталог разными пользователями и с разных файловых систем. Пользователь userB сможет читать и изменять файлы в каталоге, который на самом деле находится в домашнем каталоге пользователя userA.
http://noteasyway.blogspot.com/2011/09/linux.html
Допустим на вашей машине с ОС Linux есть несколько пользователей, для которых необходимо организовать общий доступ к файлам в определенном каталоге. Для примера можно рассмотреть, допустим, ноутбук и архив семейных фотографии.
Для того, чтобы избавиться от минусов стандартного подхода и получить возможности удобного наследования разрешений на общий для нескольких пользователей каталог, можно воспользоваться следующим инструментом - bindfs.
Использование bindfs:
Для установки в debian подобных дистрибутивах:
#apt-cache search bindfs
bindfs - mirrors or overlays a local directory with altered permissions
#apt-get install bindfs
Подробная документация по bindfs:
%man bindfs
Замечание. В случае, когда требуются права пользователя root в примерах в начале командной строки используется - #, когда обычный пользователь - %. Для логина суперпользователем:
%su root
или, например для пользователей Ubuntu:
%sudo -i
и для переключения между пользователями:
%su - userA или %su - userB
Создадим общую директорию для нескольких пользователей, например в домашнем каталоге пользователя:
userA%mkdir share
и аналогичную директорию у пользователя userB, куда будет зеркально копироваться содержимое директории пользователя userA с необходимыми разрешениями:
userB%mkdir share
Добавим группу groupAB и пользователей userA и userB в эту группу:
#addgroup --system groupAB
#adduser userA groupAB
#adduser userB groupAB
Далее, любым текстовым редактором произведем необходимые настройки в файле /etc/fstab:
bindfs#/home/userA/share /home/userB/share fuse \ perms=0775,mirror=@groupAB,group=groupAB 0 0
perm=0775 - права доступа rwxrwxr-x на директории и rw-rw-r-- на файлы;
mirror=@groupAB - владельцем файлов будет являться пользователи из группы groupAB;
group=groupAB - группа для файлов будет groupAB
Для доступа к файлам в каталоге share пользователем userB необходимо выполнить:
#mount /home/userB/share
Для проверки разрешений можно воспользоваться командой:
userB%ls -l share
Как будет видно из вывода, владельцем файлов будет являться пользователь userB и группа установлена в groupAB, что в принципе не очень удобно и можно настройки изменить следующим образом:
#umount /home/userB/share
В файле /etc/fstab, произвести следующие изменения:
bindfs#/home/userA/share /home/userB/share fuse \ perms=0755,mirror=@groupAB,group=userB 0 0
perm=0755 - получим права доступа rwxr-xr-x на директории и rw-r--r-- на файлы;
group=userB - группа для файлов будет group, первичная группа пользователя userB;
#mount /home/userB/share
Теперь владелец и группа в общем каталоге будут совпадать. Так же не будет никаких проблем с изменением разрешений на файлы при копировании и перемещении в данный каталог разными пользователями и с разных файловых систем. Пользователь userB сможет читать и изменять файлы в каталоге, который на самом деле находится в домашнем каталоге пользователя userA.
Все таки отличительная способность данного метода - не использовать лишних костылей. Нет нужды отслеживать изменения в файловой системе и применять какой-либо скрипт.
ОтветитьУдалить