Linux и права доступа

как сделать так, чтобы файлам автоматически присваивалась владелец/группа папки в которой они создаются?
  • Вопрос задан
  • 6193 просмотра
Пригласить эксперта
Ответы на вопрос 7
zombic
@zombic
Используйте sgid:
chmod g+s /dir

Например:
mkdir Test

ls -l | grep Test
drwxrwxr-x 2 zombic zombic 4096 2011-10-12 13:36 Test

cd Test/

touch file.txt

ls -l
итого 0
-rw-rw-r-- 1 zombic zombic 0 2011-10-12 13:37 file.txt

sudo touch file2.txt

ls -l
итого 0
-rw-r--r-- 1 root root 0 2011-10-12 13:37 file2.txt

chmod g+s ../Test/

sudo touch file3.txt

ls -l
итого 0
-rw-r--r-- 1 root root 0 2011-10-12 13:37 file2.txt
-rw-r--r-- 1 root zombic 0 2011-10-12 13:38 file3.txt
-rw-rw-r-- 1 zombic zombic 0 2011-10-12 13:37 file.txt
Ответ написан
Maxim_ka
@Maxim_ka
Системный инженер
Это можно реализовать набором команд setfacl, например:

Допустим у нас есть группа sales.
Создадим директорию Sales для доступа на чтение и запись пользователям, входящим в группу sales.
mkdir -m 700 Sales
setfacl -m d:g:sales:rwx,g:sales:rwx Sales
Первая команда первая команда создает директорию с правами только для root, вторая установит те же права для группы sales.
все что будет создано пользователями группы и даже рутом будет наследовать атрибуты доступа.

В интернете много информации по этому материалу
Ответ написан
Комментировать
Владелец файла и группа устанавливаются согласно тому, кто создал данный файл.
Как вариант можно решить вопрос созданием скрипта, который бы при создании объекта вычислял атрибуты родителя и устанавливал права.
Ответ написан
icCE
@icCE
youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
Если я все правильно понял, то вам лучше всего воспользоватся ACL.

setfacl -m default:user:iivanov:rw managerdata
Для файлов и директорий, создаваемых в директории managerdata, добавить право чтение/записи для пользователя iivanov.
Ответ написан
Комментировать
@evgsd Автор вопроса
всем спасибо за ответы, как я и думал путей несколько
Ответ написан
Комментировать
romik
@romik
Только учитывайте, что решения на основе sgid или ACL работают только для новых файлов. Если вы будете использовать mv, то ничего не выйдет.
Надёжное решение — bindfs.
Ответ написан
Комментировать
Я в свое время пробовал все эти способы, но ни один не подошел полностью. Подошел bindfs — с ним удалось настроить все именно так, как мне было нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы