Кто должен владеть файлами, совместно использованными группой и куда они должны пойти

Сортировка по размерам блока и затем поворачивает это в человекочитаемый:

du -sk * | sort -nr | cut -f2 | xargs du -sh
2
10.05.2014, 02:56
2 ответа

  1. Кто должен владеть уже существующими файлами? Я думал либо о корневом, либо о создании набора манекенов-пользователей, соответствующих группам.
  2. Оставляя их в собственности root, но принадлежащими к общей группе, предполагая, что файлы замаскированы 0002 (т.е. могут быть записаны в группу), есть небольшое преимущество в том, что они не будут случайно принадлежать пользователям, если вы создадите пользователей, соответствующих группам, и люди, входящие в группы, смогут войти в систему как этот пользователь. Я имею в виду [117544] несчастный случай [117545], потому что, конечно, злонамеренный пользователь в группе сможет просто удалить файлы в любом случае. Но если они принадлежат root (или любому другому пользователю [117546], не входящему в группу[117547]), то, хотя кто-то в группе все еще может писать им (и таким образом удалять их), они не смогут заново подтвердить или изменить права так, чтобы другие члены группы не смогли впоследствии получить доступ к файлу.
  3. Используя группу, но не имея фиксированного владельца (то есть, не имея фиксированного владельца), Файлы могут принадлежать кому угодно, но должны быть в правильной группе с групповыми правами) имеет преимущество, если пользователи будут создавать файлы (см. ниже).
  4. Создание новых пользователей только для соответствия группам, вероятно, создаст больше потенциальных проблем, чем решит на самом деле. Если использование групповых прав работает, придерживайтесь этого. Вы также можете создать небольшую команду для суперпользователя:

И использовать ее [117548]foo /some/directory[117549]. Это гарантирует, что все в дереве принадлежит [117550]root[117551], с группой [117552]groupx[117553], и группа может быть записана.

Есть потенциальная проблема с использованием [117554]root[1175555] в качестве владельца, если root затем добавляет в файл бит [117556]setuid[117557], но я считаю, что только владелец может это сделать. Если вы действительно беспокоитесь, создайте фиктивного пользователя -- но не такого, который соответствует группе. Тот, у кого нет привилегий, но никто не может их использовать.

Есть еще одна проблема с пользователями, создающими новые файлы, которые по умолчанию будут принадлежать им. Они смогут изменить его на правильную группу, что сделает файл доступным для других, но они не смогут изменить владельца. По этой причине, а также из-за того, что люди могут забыть, вы можете захотеть запускать [117558]foo /some/directory[117559] через регулярные интервалы времени или в подходящие моменты (например, когда никто не входит в систему, так как смена владельца может повлиять на программы, у которых файл открыт).

Принимая во внимание последний параграф, вы можете просто сказать [117560]что владелец вовсе не имеет значения [117561], важна только группа. В этом случае команда [117562]foo[117563] должна использовать:

вместо [117564]chown[117565].

куда мне поместить файлы

Создание [117568]/дома/группы[117569] абсолютно нормально, даже если [117570]groupx[117571] является группой, а не пользователем. Единственная потенциальная проблема будет, если вы затем пойдете и создадите пользователя с таким же именем - но вы не хотите этого в любом случае. Положите туда файлы и [117572]foo /home/groupx[117573].

Если вы не хотите, чтобы пользователи могли создавать файлы, установите каталог 755. Они все равно смогут изменять файлы, принадлежащие их группе.[116937].

3
27.01.2020, 22:00
[118205]Обычно в этой ситуации файлы будут принадлежать тому, кто сохранил их последним (или тому, кто их создал, если они редактируются программой, которая изменяет существующий файл, а не создает новую версию). Если вы создаёте набор исходных файлов, я оставлю их в собственности вашей учётной записи, если только вы не помещаете данные в группу, к которой не принадлежите, и в этом случае корень не хуже любого. Но ничего страшного.

Нет широко распространённой конвенции для данных, которые не являются ни частью системы ([118591]/usr[118592], [118593]/var[118594], [118595]/bin[118596], [118597]/sbin[118598], [118599]/lib[118600], [118601]/etc[118602]), ни домашними каталогами пользователей ([118603]/home[118604]). Другие каталоги можно сделать в разделе [118605]/home[118606] или поместить в другое место. [118607]/srv[118608] в принципе предназначен для данных, используемых серверами, но как системный администратор вы можете размещать туда все, что захотите. [118609]/net/MACHINENAME[118610] является популярным выбором для "различных данных, хранящихся на MACHINENAME" в сетях, куда машины экспортируют друг другу файловые системы.[118208].

1
27.01.2020, 22:00

Теги

Похожие вопросы