Принудительная установка группы и прав доступа для новых файлов и директорий в Linux

ПРИНУДИТЕЛЬНАЯ УСТАНОВКА ГРУППЫ И ПРАВ ДОСТУПА ДЛЯ НОВЫХ ФАЙЛОВ И ДИРЕКТОРИЙ В LINUX

Инструкция по принудительной установке группы и прав доступа для новых файлов и директорий в OC Linux.

Иногда нужно, чтобы создаваемые в директории some_path файлы зразу же принадлежали к какой-то группе some_group и имели определенные права доступа. Для этого следует определить параметры ACL в этой директории.

ACL (Access Control List - Список Контроля Доступа) предоставляет расширенный и более гибкий механизм распределения прав файловых систем. Он предназначен для расширения прав доступа к файлам UNIX. ACL позволяет устанавливать разрешения любым пользователям или группам для различных файловых ресурсов.

Для начала стоит глянуть на текущие настройки ACL для директории:
$ getfacl some_path

# file: some_path
# owner: some_user
# group: some_group
user::rwx
group::r-x
other::r-x

Затем выполнить следующие команды:

Установка групы some_group владельцем some_path
# chgrp -R some_group some_path

Установка разрешений 770 для директорий
# find some_path -type d | xargs chmod 770
или
# find some_path -type d -exec chmod 770 {} \;

Установка setgid.
Бит setgid для директории (chmod g+s) заставляет только новые каталоги и файлы, созданные в ней, наследовать ID группы этой директории вместо ID группы пользователя, создавшего файл. Новые поддиректории также наследуют бит setgid. Это позволяет создать общее рабочее пространство для группы без неудобств членам группы явно менять их текущую группу для создания новых файлов и директорий.
# chmod g+s some_path

Наследование устанавливается только для новых файлов и каталогов. Уже существующим файлам и директориям этот бит нужно устанавливать вручную, например:
# find some_path -type d | xargs chmod g+s
или
# find some_path -type d -exec chmod g+s {} \;

Установка разрешений 770/660 для уже существующих файлов и директорий:
# find some_path/ -type d -exec chmod 770 {} \;
# find some_path/ -type f -exec chmod 660 {} \;

Установка параметров ACL для some_path. Все файлы и каталоги при создании будут наследовать записи ACL родительского каталога:
# setfacl -dRm "u:some_user:rwx,g:some_group:rwx,o::0" some_path

Проверяем:
$ getfacl some_path

# file: some_path
# owner: some_user
# group: some_group
# flags: -s-
user::rwx
group::rwx
other::---
default:user::rwx
default:user:some_user:rwx
default:group::r-x
default:group:some_group:rwx
default:mask::rwx
default:other::---

Удалить настройки ACL для директории some_path можно следующей командой:
setfacl -b some_path

Blog Comments powered by Disqus.