LINUX.ORG.RU

set GID и права на запись файлов

 


0

1

Доброго дня! Есть два пользователя в группе share_folder - user1 и user2.

Создаю папку common в /home.

Выполняю chgrp share-folder /home/common

Выполняю chmod 2775 /home/common

теперь common выглядит drwхrwsr-x

Выполняю от user1 - touch test и test имеет права -rwr–r–, то есть user2 не имеет прав редактировать.

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

В книгах пишут, что файлы, созданные в таких папках, можно редактировать всем членам группы.

Либо это плохие книги либо ты их не понял.

firkax ★★★ ()
Ответ на: комментарий от anonymous

А, я не заметил вопроса, думал там теоретический «правда ли что setgid даёт шару на запись». Ответил - нет. Теперь вижу что это только часть вопроса была.

firkax ★★★ ()

У тебя два варианта. Оба не без минусов.

1) Как я понял у тебя фтп с двумя логинами, которым нужны одинаковые права, так? Если да, то назначь оба логина на один uid (просто пропиши его одинаковый в /etc/passwd или где он у тебя там). Но тогда права будут полностью одинаковые, отличить этих юзеров друг от друга будет практически нельзя. Но пароли им можно будет задать разные и в логах фтп-сервера будет видно кто именно что делал.

2) Если делать общий uid не вариант - надо добиваться чтобы все файлы создавались с g+w доступом. Скорее всего где-то в настройках сервера прописан параметр umask = 022, поставь туда 002. Где он конкретно прописан - зависит от того что у тебя за сервер. Ну либо те кто заливают файлы сами должны его ставить вручную (если это виндузятники то скорее всего не осилят).

firkax ★★★ ()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Благодарю, сэр! Но зачем тогда вообще нуен этот setGID? в книгах пишут, что это для организации общих папок и типа созданные файлы внутри папки с выставленным setGID наследуют права этой папки. Но если нельзя редактировать общее файло, то как бы вообще бессмысленно выходит.

SpaceRanger ()
Последнее исправление: SpaceRanger (всего исправлений: 1)

У пользовательских процессов должен быть umask 002, чтобы файлы по умолчанию создавались group writable.

iliyap ★★★★★ ()
Ответ на: комментарий от SpaceRanger

Наследуется группа. Но по умолчанию группа ни на что не влияет - просто надпись в списке файлов. Чтобы влияла, как ты хочешь, надо umask 002. Только если оба юзера - члены одной и той же группы, то setgid и права не нужен, она и так будет общая у них.

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

в книжках пишут, что изменение маски не тру и вообще потенциально опасно.

Решено использованием ACL. По сути одной командой решается

setfacl -d -m group:GROUPNAME:rwx /path/to/directory

теперь всё, что создано в общей директории, наследует права оной.

SpaceRanger ()
Последнее исправление: SpaceRanger (всего исправлений: 1)
Ответ на: комментарий от SpaceRanger

Ну, если оно у тебя всеми поддерживается, то да. Но вообще ACL немного менее переносимо и менее прозрачно чем стандартные UNIX права.

firkax ★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.