Linux наследование прав при создании файла

unixforum.org

наследования владельца при создании дериктории

наследования владельца при создании дериктории

Сообщение unaos » 02.03.2006 11:19

hi!
ппл интересует как установить а-ля стики бит на пользователя.
т.е. например в /var/www (apache:ftp/770) все вложенные дериктории имели те же права (770), владельца (apache) и группу (ftp). ну соответсвенно и файлы тоже (apache:ftp/660).
используется reiserfs.
10х

Re: наследования владельца при создании дериктории

Сообщение Kisa » 02.03.2006 11:47

Re: наследования владельца при создании дериктории

Сообщение unaos » 02.03.2006 11:54

«как установить а-ля стики бит», «наследование» — эти слова говорят о перманентной смене.
как сделать так что бы все создаваемые файлы наследовали права и пользователя родительской т.е. создавались с такими же. ручная смена понятна

Re: наследования владельца при создании дериктории

Сообщение BigKAA » 02.03.2006 12:04

«как установить а-ля стики бит», «наследование» — эти слова говорят о перманентной смене.
как сделать так что бы все создаваемые файлы наследовали права и пользователя родительской т.е. создавались с такими же. ручная смена понятна

Можно наследовать только группу и SGID бит, если установить SGID бит на директорию. Правда, все создаваемые файлы и директории будут принадлежать группе, к которой принадлежит родительская директория. Хлзяина наследовать по определению нельзя!

Для установления прав доступа по умолчанию можно воспользоваться umask, но это распространяется на пользователя целиком, а не на директорию. Хотя можно написать скриптик, в котором сначала ставится umask 0007, а затем вызывается программа.

Источник

Наследование прав доступа от родительского каталога

Есть директория /srv/sites/domain.ltd/html принадлежащая пользователю и группе apache:apache и имеющая права 6770 (rwsrws—). Есть юзер iskatel, который входит в группу apache и он создаёт в этой директории файл, скажем, index.html. Файл автоматом получает принадлежность к юзеру iskatel и группе apache. А я вот ожидал другого результата, ведь наличие suid и sgid битов на каталоге должно приводить к тому что файл у родительского каталога будет наследовать и группу и юзера, то есть юзер должен быть apache. Почему так?

Потому что suid не работает для каталогов.

Бит setuid, установленный для директорий, игнорируется в большинстве версий Unix[источник не указан 1468 дней].

А какие тогда есть способы получить желаемое?

Cоздавайте файл пользователем apache. Но полагаю chown будет удобнее.

Каждый раз делать chown? А представь, что юзеру права рута, чтобы использовать chown, не даются. А вообще это же вечная проблема в линуксе, когда два юзера пишут в один каталог с одинаковыми правами. Вот например юзер по ftp создаёт файлы от имени iskatel, php-скрипты создают файлы от имени apache. Вообще случай с веб-сервером — это частный случай. Другой случай, когда имеется файлопомойка в которой создают файлы различные сотрудники одного отдела, если один случайно создаст файл read-only — то второй не сможет его удалить. Я не верю, что за столько лет существования линукса никто не научился решать эту проблему.

Другой случай, когда имеется файлопомойка в которой создают файлы различные сотрудники одного отдела, если один случайно создаст файл read-only — то второй не сможет его удалить.

Если оба юзера входят в группу, являющуюся группой-владельцем этого файла, то сможет.

Читайте также:  Active directory dhcp dns linux

Если пользователь не входит в группу wheel — вообще не стоит менять права и владельца в будущем, это поможет более менее контролить «файло-помойку». ftp и web чуточку отличаются. На ftp сервере владельца менять не стоит, а на web сервере создавать файлы скриптом (права apache).

если один случайно создаст файл read-only — то второй не сможет его удалить. Я не верю, что за столько лет существования линукса никто не научился решать эту проблему.

проблемы нет. один отдел — одна группа, все пользователи этой группы имеют равные права на файлы и могут использовать chmod. Заблокировать файл можно только с помощью chown, а значит пользователь должен входить в группу wheel. Не стоит подключать к этой группе всех подряд, также не стоит подключать рядового пользователя более чем к одной группе.

P.S. Надо поэксперементировать с этим )

Каждый раз делать chown? А представь, что юзеру права рута, чтобы использовать chown, не даются.

Можно использовать bindfs, что-то вроде:

/home/alex/projects /home/dev/projects fuse.bindfs create-for-user=alex,create-for-group=alex,force-group=dev,force-user=dev,perms=g+rwX 0 0 

Источник

Linux наследование прав при создании файла

Добрый день. У меня возник вопрос по файловым системам Linux — как можно организовать наследование прав, т.е. есть директория с правами 777. Туда разные пользователи сливают файлы. Как сделать чтобы на всех вновь создаваемых файлах устанавливались права 777?

  • Наследование прав доступа, Deus, 08:26 , 25-Окт-07, (1)
  • Наследование прав доступа, angra, 09:56 , 25-Окт-07, (2)
    • Наследование прав доступа, ShyLion, 20:11 , 25-Окт-07, (3)
      • Наследование прав доступа, angra, 09:23 , 26-Окт-07, (4)
        • Наследование прав доступа, Golub Mikhail, 10:21 , 26-Окт-07, (5)
        • Наследование прав доступа, ShyLion, 13:34 , 26-Окт-07, (7)
          • Наследование прав доступа, angra, 06:45 , 27-Окт-07, (9)
          • Наследование прав доступа, konst, 23:06 , 26-Окт-07, (8)
            • Наследование прав доступа, tux2002, 08:20 , 29-Окт-07, (10)
              • Наследование прав доступа, tux2002, 08:28 , 29-Окт-07, ( 11 )
                • Наследование прав доступа, konstantine, 11:41 , 03-Мрт-09, ( 12 )
                • Наследование прав доступа, abtop, 16:41 , 27-Фев-10, ( 14 )

                >Добрый день. У меня возник вопрос по файловым системам Linux — как
                >можно организовать наследование прав, т.е. есть директория с правами 777. Туда
                >разные пользователи сливают файлы. Как сделать чтобы на всех вновь создаваемых
                >файлах устанавливались права 777?

                недостаточно информации, как сливают, по какому протоколу? ftp или samba?
                у ftp и samba есть параметры которые позволяют назначить права на файлы.

                Зачем 777 на все файлы? Не могу придумать зачем такое нужно. Попробуйте сначала сформулировать четко основную задачу, вы ведь не просто так хотите такие права. Не исключен вариант, что вы просто идете в неправильном направлении.
                Если отвечать в общем виде на ваш вопрос, то ответом будет — невозможно. Что однако не означает, что реальная задача стоящая перед вами не решима.

                >Если отвечать в общем виде на ваш вопрос, то ответом будет —
                >невозможно.

                если пользователь владелец файла или папки, он может задать на нем любые разрешения, в том числе и 777

                >>Если отвечать в общем виде на ваш вопрос, то ответом будет —
                >>невозможно.
                >
                >если пользователь владелец файла или папки, он может задать на нем любые
                >разрешения, в том числе и 777

                Вы бы хоть вопрос прочитали бы для начала.

                >>>Если отвечать в общем виде на ваш вопрос, то ответом будет —
                >>>невозможно.
                >>
                >>если пользователь владелец файла или папки, он может задать на нем любые
                >>разрешения, в том числе и 777
                >
                >Вы бы хоть вопрос прочитали бы для начала.

                В ftp — umask .
                В самба не помню.

                >>>Если отвечать в общем виде на ваш вопрос, то ответом будет —
                >>>невозможно.
                >>
                >>если пользователь владелец файла или папки, он может задать на нем любые
                >>разрешения, в том числе и 777
                >
                >Вы бы хоть вопрос прочитали бы для начала.

                В вопросе метод помещения файла в папку не указывался. В общем случае пользователю сменить разрешения на собственном файле ничего не мешает.

                >В вопросе метод помещения файла в папку не указывался. В общем случае
                >пользователю сменить разрешения на собственном файле ничего не мешает.

                Таки не прочитали. Задача состоит в АВТОМАТИЧЕСКОЙ установке прав в 777, без ведома/действий пользователя. В ОБЩЕМ случае она не решаема. В частных случаях очень даже решаема.
                Кроме того есть ряд случаев когда пользователь НЕ может изменить права на свой файл. Можете на досуге поискать примеры 🙂

                >Добрый день. У меня возник вопрос по файловым системам Linux — как
                >можно организовать наследование прав, т.е. есть директория с правами 777. Туда
                >разные пользователи сливают файлы. Как сделать чтобы на всех вновь создаваемых
                >файлах устанавливались права 777?

                Пользователи создают файлы с правами на основании своего значения umask.
                Как наследовать права я не знаю — наверное никак.
                Можно наследовать например группу папки (владельца не получится) — устанавливать на папку 42XXX

                >>Добрый день. У меня возник вопрос по файловым системам Linux — как
                >>можно организовать наследование прав, т.е. есть директория с правами 777. Туда
                >>разные пользователи сливают файлы. Как сделать чтобы на всех вновь создаваемых
                >>файлах устанавливались права 777?
                >
                >Пользователи создают файлы с правами на основании своего значения umask.
                >Как наследовать права я не знаю — наверное никак.
                >Можно наследовать например группу папки (владельца не получится) — устанавливать на папку
                >42XXX

                Если бы у меня стояла такая тупая задача, как дать всем файлам/папкам в опред. дир-рии права 777, я бы просто раз */3 мин рабочего времени запускал бы chmod -R 777

                >Если бы у меня стояла такая тупая задача, как дать всем файлам/папкам в опред. дир-рии права 777, я бы просто раз */3 мин рабочего времени запускал бы chmod -R 777

                Я пытался донести до спрашивающего вариант с umask 002 и общей группой, в которую данные пользователи входят. Её же установить на папку.

                >umask 007

                У меня 1Ска на линухе терминальная дык пришлось каждому пользователю пр заходе автоматом ставить umask 0002. Жалко что не знаю как сделать чтобы создаваемый файл наследовал группу и владельца дирректории так было бы удобнее.

                У мну Suse 11.0

                Ответ: похоже невозможно(по человечески)! Я, конечно, не уверен, но никакой информации по этому вопросу не нашел.
                1) Umask. Umask ограничивает права, а не заставляет файл с ними создаваться. Т.е. при umask 002 файл 777 превращаяется в 775, а файл 755, в 755. Вывод: все зависит от программы, которая создает файл.
                2) Acl. Делает force при создании файла. При копировании у файла остаются его старые права.

                Не по человечески:
                добавьте в crontab на каждую минуту chmod.

                Для вопрошающих зачем пример: есть почтовик Thunderbird. Есть некий ящик, который читают несколько пользователей. Так вот, при создании новой папки, или сжатии существующей, права на соответствующий mailbox файл выставляются в 700. После такого другой пользователь вместо почты видит болт.

                # наследовать владельца (вышестоящей директории)
                inherit owner = yes
                # наследовать ACL
                inherit acls = yes
                # наследовать права
                inherit permissions = yes
                # позвоялет редактору прав из винды корректно обрабатывать
                # наследуемые права
                map acl inherit = yes

                Источник

                Как установить права доступа к файлам, чтобы новые файлы наследовали те же разрешения?

                У меня есть папка, в которой новые подпапки и файлы будут создаваться автоматически по сценарию. Я хочу рекурсивно поддерживать права пользователей и групп для всех новых папок и файлов, помещенных в родительский каталог. Я знаю, что это связано с установкой залипания, но я не могу найти команду, которая показывает именно то, что мне нужно. Это то, что я сделал до сих пор:

                sudo mkdir -p /path/to/parent sudo chmod -R 660 myself:somegroup /path/to/parent 
                1. Каталоги, расположенные в /path/to/parent могут быть выполнены пользователями с разрешениями
                2. файлы доступны для чтения / записи самим пользователем и членами группы.
                3. Файлы и папки в /path/to/parent НЕ доступны для чтения

                Я работаю на Ubuntu 10.0.4 LTS.

                Может кто-нибудь помочь, пожалуйста?

                3 ответа 3

                Биты разрешения, которые вы ищете, это 0770 и 0660.

                Владение группой может быть унаследовано новыми файлами и папками, созданными в вашей папке /path /to /parent, установив бит setgid с помощью chmod g+s следующим образом:

                Теперь для всех новых файлов и папок, созданных в /path /to /parent, будет назначена та же группа, что и для /path /to /parent.

                Права доступа к файлам POSIX не наследуются; они задаются процессом создания и объединяются с его текущим значением umask.

                Тем не менее, вы можете использовать POSIX ACL для достижения этой цели. Установите ACL по умолчанию для каталога:

                setfacl -d -m u::rwX,g::rwX,o::- /path/to/parent 

                Это применит setfacl к каталогу /path /to /parent, -m посвящая списки ACD -d efault — те, которые будут применяться к вновь созданным элементам. (Верхний регистр X означает, что только каталоги получат бит +x .)

                (При необходимости вы можете добавить u:someuser:rwX или g:someuser:rwX — предпочтительно группу — в списки ACL.)

                Примечание. В старых системах, использующих ext3/ext4, раньше вам приходилось монтировать файловую систему с опцией acl , иначе она будет игнорировать все ACL и запрещать установку новых.

                Чтобы установить это постоянно, используйте tune2fs -o acl или отредактируйте /etc/fstab .

                Источник

Оцените статью
Adblock
detector