Мне нужна помощь в настройке разрешений для папок по умолчанию на томе объемом 100 ТБ, на котором есть более 900 пользовательских каталогов. У каждого пользователя есть жесткий предел квоты в 25 ГБ.

Все права доступа пользователя установлены на 755, так что каждый пользователь может «видеть» в именованном пространстве друг друга. Затем мы устанавливаем стандартное трио dirs в пространстве каждого пользователя. Стандартные каталоги названы, а их правила установлены следующим образом:

% stat -c '%A %a %n' *
drws-wx-wx 4733 dropbox
drwx------ 700  private
drwxr-xr-x 755  public 

/private установлен на 700, только для доступа пользователей. Каждый пользователь может хранить данные для своих глаз только в этом каталоге;

Для параметра /public установлено значение 755, поэтому данные могут быть переданы другим пользователям. Пользователь может поместить файлы в общедоступную директорию, чтобы другие пользователи могли получить к ней доступ и делать копии для собственного использования, но другие пользователи не могут писать туда; а также

Параметр /dropbox имеет значение 4733, поэтому он позволяет другим пользователям добавлять файлы в него. Закрепленный бит группы включен, поэтому любой файл, помещенный в него, примет GID папки dropbox.

Эти папки работают отлично, настроены так, как есть, за исключением одной проблемы, которую я не могу решить. Из того, что я прочитал до сих пор, то, что мне нужно сделать, кажется невозможным, что кажется мне безумным (нам это ДЕЙСТВИТЕЛЬНО нужно, и я не могу быть единственным, кому нужна эта возможность!).

ЗДЕСЬ НУЖДА ========

Мне нужно иметь возможность настраивать перманенты папок по умолчанию /dropbox для каждого пользователя, чтобы любой файл помещался в личный ящик пользователя. ИЗМЕНЕНИЕ СОБСТВЕННОСТИ для пользователя, которому принадлежит этот ящик.

=======================

В соответствии с текущими возможностями системы, когда файл перетаскивается в каталог другого пользователя /dropbox, право собственности остается за первоначальным пользователем. А поскольку биты чтения g и o отключены, исходный пользователь больше не имеет доступа к удаленному файлу, поскольку для каждого параметра /dropbox заданы права доступа 733 (доступ только для записи для группы и других). Поскольку файл остается владельцем исходного пользователя, он все равно учитывается в квоте этого пользователя, даже если файл больше не принадлежит этому пользователю. Люди не могут «очистить» свои собственные 25 ГБ пространства, если данные распространяются в дропбоксах других пользователей!

Это ДЕЙСТВИТЕЛЬНО плохо для нас из-за того, как управляется квота: хотя мы даем каждому пользователю пространство по 25 ГБ, мы действительно предоставляем каждому пользователю по 25 ГБ «данных», независимо от того, где он находится в дереве. Это означает, что данные, принадлежащие одному пользователю, могут существовать по всей карте, во множестве различных каталогов /dropbox, что делает практически невозможным для самих пользователей управление своей квотой. Это также усложняет работу администраторов, поскольку трудно найти все данные, принадлежащие одному пользователю, по объему такого размера.

Интересно отметить, что директория /public делает именно то, что мне нужно, с папками /dropox, но наоборот: если пользователь заходит в директорию другого пользователя /public, берет файл и копирует его в свой каталог. именованная папка (или где-то еще, в этом отношении), владелец файла изменяется на ID пользователя, выполняющего копирование, поэтому он затем учитывается в квоте этого нового пользователя, а не в исходном пользователе. Отлично.

Кроме того, я установил g sticky-бит в директории /dropbox так, чтобы при добавлении в него любого файла GID удаляемого файла изменялся на GID самого Dropbox. Это удобно в том случае, если целевой пользователь не входит в группу, показанную в файле - группа изменяется, и принимающий пользователь имеет доступ к файлу.

Такого рода изменения, которые можно легко сделать для изменения GID для отброшенных файлов, это ТОЧНО, что мне нужно, чтобы владеть файлами, которые перемещаются. Включение залипающего бита для пользователя в папке не работает так же, как включение залипающего бита для группы - из того, что я видел, не происходит никаких изменений для файлов, помещенных в папки /dropbox, в которых включен залипающий бит пользователя.

Среда: Mac и Linux, использующие файловые серверы NFS. Пользователи используют как графический интерфейс, так и командную строку для перемещения данных.

Большое спасибо за любую помощь или руководство.

1 ответ1

0

Это в основном невозможно, за исключением некоторых систем на базе BSD.

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

Из статьи setuid в Википедии:

Набор разрешений setuid для каталога игнорируется в системах UNIX и Linux. FreeBSD может быть настроен так, чтобы интерпретировать его аналогично setgid, а именно заставить все файлы и подкаталоги принадлежать владельцу верхнего каталога.

В системах, производных от BSD, каталоги ведут себя так, как будто их бит setgid был установлен всегда, независимо от его фактического значения. Как указано в open(2): «Когда создается новый файл, ему присваивается группа каталога, в которой он находится».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .