LINUX.ORG.RU
ФорумAdmin

как установить группу по умолчанию для вновь создаваемых файлов?


0

0

есть несколько пользователей, обьединееные в группу . например один из них скачивает с interneta файл - как сделать так, чтобы этот файл сразу(автоматически) принадлежал группе, в которую входят все эти пользователи и имел определенные права доступа? c umask никак не разберусь - man coвершенно короткий - нет даже описания предназначения umask

anonymous

немного не так

когда файл создается то он приобретает
владельца и группу к которой принадлежит юзер

типа юзер - usr01
группа - buh

и чтоб созданный файл был доступен членам этой группы
то надо установить правильный umask

он задает какие биты в правах обнулять
например при создании файла первоночально его права 777 (имхо)
все все делает с файлом

если umask 007 - то обнуляются младшие три бита и получается
770 - владелец и группа все делают с файлом а другие ничего

если umask 047 - то владельцу все группе читать выполнять

ae
()

поправка - umask 027, что бы владельцу все, а группе - читать и выполнять.

а что бы была на файлах нужная группа поставь SGID на каталог

antoxa
()
Ответ на: комментарий от ae

у меня сейчас так: есть например user kolya. он занесен в группу unit. он создает (или скачивает) файл. этот файл имеет владельца kolya и группу kolya (a не unit - как мне бы хотелось...) за umask - thanks.

anonymous
()

Делаешь скажем каталог /home/kolya/download
Затем chmod g+s /home/kolya/dowload
И наконец chgrp unit /home/kolya/download
Теперь все файлы созданные в /home/kolya/download будут принадлежать
группе unit

temofey
()
Ответ на: комментарий от temofey

Так то оно так, вот только права на домашний
каталог /home/kolya - 0700.
На то ведь он и домашний, чтобы никто кроме юзера (и рута конечно)
не мог в нем лазить.
И никакая группа в домашний каталог не долезет, если, конечно,
ты его не откроешь.
А так ход мысли верный.

NewComer
()

То что на домашний каталог обязательно ставить 700 - это не обязательно. Я расказал принцип, с такимже успехом создаешь скажем /tmp/download

temofey
()

Видимо нужно, чтобы все пользователи какой-то группы имели права записи в некий общий каталог, и чтобы файлы в этом каталоге по умолчанию создавались с правами записи для этой группы. В этом случае обычно прменяют систему, которую RedHat называет private groups.

1. Мы хотим, чтобы все файлы, создаваемые в общем каталоге, принадлежали некой группе и чтобы эта группа имела права записи в этот каталог. Для этого chmod g+ws /shared/dir; chown -R root.sharedgroup /shared/dir.

2. Мы хотим, чтобы вновь создаваемы файлы были доступны для записи группе. Для этого процесс пользователя должен исполняться с umask=002, т.е. o-w (обычно umask=022, т.е. go-w). Изменять umask перед работой с общими файлами в общем каталоге неудобно, поэтому делаем umask=002 в /etc/profile.

3. Тогда все файлы, которые создаёт пользователь имеют право на запись для группы. Если все пользователи принадлежат одной первичной группе (например, users), то они могут изменять файлы друг друга, не лежащие в общем каталоге (неправильно!).

4. Поэтому каждого пользователя надо включить в первичную группу, в которой больше никого нет (private group).

В RedHat'е useradd по умолчанию создаёт для каждого нового пользователя его личную группу с тем же именем. /etc/profile проверяет, если (uid >= 500) && ((uid == gid) || (uname == gname)) то umask устанавливается в 002: иначе в 022 (т.е. система личных групп делается только для несистемных пользователей).

iliyap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.