Или: куда я могу поместить файлы, принадлежащие группе?
Предположим, в системе Unix есть два пользователя: Джо и Сара . Они оба являются членами группы любителей кино . Где я должен положить свои файлы фильмов?
/home/{joe,sarah}/movies
не подходят, потому что эти каталоги принадлежат joe / sarah , а не их группе;/home/movies-enthusiast
тоже не подходит, потому что любители кино - это группа, а не пользователь;/var/movies-enthusiast
может быть вариант, но я не уверен, что это разрешено FHS;/srv/movies-enthusiast
также может быть вариантом, однако фильмы не являются файлами, которые требуются системным службам.
directory-structure
fhs
user16538
источник
источник
Ответы:
Не использовать
/usr
для общих данных только для чтения. Данные здесь должны изменяться только по административным причинам (например, установка новых пакетов.)/opt
как правило, для программ, которые являются автономными или по какой-либо причине должны быть изолированы от остальной системы (например, программы с медленным и слабым взаимодействием)./var
предназначен для «файлов, содержимое которых, как ожидается, будет постоянно меняться при нормальной работе системы, таких как журналы, файлы спула и временные файлы электронной почты». Мне нравится думать об этом так: если ваши данные не будут выглядеть правильно в виде списка, они обычно не принадлежат/var
(хотя есть исключения из этого).использование
/home
для домашних каталогов пользователей. Некоторые видят этот каталог как область для групповых файлов. FHS фактически отмечает, что «в больших системах (особенно, когда каталоги / home совместно используются многими хостами, использующими NFS) полезно разделить домашние каталоги пользователей. Разделение может быть выполнено с использованием подкаталогов, таких как / home / staff, / home. / гости, / дома / студенты и т. д. "/srv
является приемлемым и часто предпочтительным местом для групповых файлов. Я обычно использую этот каталог для файлов с общим доступом по причине, указанной в ответе Криса Дауна ; Я считаю групповой обмен файлами службой, предоставляемой сервером.См. Справочную страницу hier (7) (
man hier
) для получения дополнительной информации о назначении каждого каталога, описанного FHS.источник
/srv/data
каталог для файлов данных.На мой взгляд, правильное место
/srv/movies-enthusiast
. «Служба» не обязательно должна быть демоном или программой, она должна быть только службой, предоставляемой системой (например, возможностью доставлять туда свои фильмы). Вот цитата из FHS :Я определенно думаю, что ваше использование подпадает под это определение, и предоставляет услугу.
источник
/srv/data
каталог для файлов данных.Hierarchy Standard Filesystem (FHS) определяет макет для «разработчиков Unix распределений, разработчиков пакета и системы реализаторов» , чтобы придерживаться, чтобы не напутать ваше пространство имен.
Поскольку это ваше пространство имен, вы должны выбрать любое имя, которое вы считаете подходящим. Если вы находите
/groups/movies-enthusiast
смысл, вы должны положить его туда. Если вам нравятся короткие имена путей, потому что их легче набирать,/g/movies-enthusiast
(или, возможно/g/m-e
) подойдет.Поскольку выбранные вами пути не определены в FHS, дистрибутив или сторонние пакеты не должны касаться их. Таким образом, вы должны прочитать FHS, чтобы узнать, какие пути могут использоваться совместимым программным обеспечением (оглавление расскажет вам большую часть того, что вам нужно знать).
Например, я лично использую
/av
для хранения своего аудиовизуального контента,/src
для исходного кода и/data
для неопределенных данных (таких как образы виртуальных машин, образы компакт-дисков, chroot, сохраненные пакеты и т. Д.).источник
Нет ничего плохого в создании новой точки монтирования или каталога для этой цели из корня.
Особенно, если это основная цель этой системы, я бы просто создал
/ Кино-энтузиасты
Если есть другие подобные «группы», я могу или не могу предпочесть разместить их вместе, например
или же
Вопросы для рассмотрения: Собираетесь ли вы выделить точку монтирования для этой цели?
Вы рассматривали мягкие ссылки?
В любом случае нет никаких правил. Если вы хотите сделать одного пользователя хранителем и предоставить остальным доступ к этому пространству проекта, не стесняйтесь размещать его в домашнем каталоге пользователя. Или создайте пространство имен / home / shared / *. Вы свой собственный босс.
Ах, одно: что бы вы ни делали, документируйте это. Он должен стать частью восстановления системы, ежедневных проверок, резервного копирования и т. Д. Необходимо отметить важные задержки конфигурации (например, членство в группах, наборы разрешений, настраиваемые fs для производительности и все остальное, что не является значением по умолчанию)
источник
FHS также упрощает работу с администратором, поэтому я бы выбрал / srv по этой причине, хотя это не то, что я сделал. Имейте идеальный взгляд в прошлое, хотя. Я использую / export / srv, потому что это на NAS.
Если это выпадающий ящик, то убедитесь, что он и сетгид, и липкий. Также убедитесь, что те, кто его использует, имеют полезные маски. Тем не менее, не используйте колесо, как я это делал на примере режимов доступа к файлам. Не раздевайте eXecute, иначе вас ждет сюрприз.
источник
Важно помнить, что FHS решает проблемы, когда размещение файлов необходимо координировать между несколькими сторонами, такими как локальные сайты, дистрибутивы, приложения, документация и т. Д . ; FHS не пытается устанавливать правила для каждой конкретной ситуации: локальное размещение локальных файлов является локальной проблемой ( FHS 3.0, раздел 1.1 ).
Следовательно, технически вы можете поместить свой
movies
каталог куда угодно, если он не противоречит соглашениям FHS . Тем не менее, ваш вопрос был о наиболее подходящем месте, поэтому давайте рассмотрим несколько распространенных ответов (упорядоченные от наиболее предпочтительных до менее предпочтительных, учитывая ваш конкретный вариант использования):/<someprefix>/<groupname>
или/media/<volumename>/<groupname>
: я, честно говоря, не знаю, почему эта опция имеет плохую репутацию в мире Linux, но давайте проясним это: это действительно ваша система, и FHS говорит, что вы свободны от создания новых каталогов на корневом уровне до тех пор, пока так как вы не конфликтуете ни с чем, для чего существует устоявшаяся семантика. Вы можете, например, создать каталог/groups
или/shared
организовать файлы в них по своему усмотрению. Я знаю, что некоторые администраторы предпочитают изолировать их от остальной части файловой системы, поэтому они монтируют отдельный том (то есть под/media/<volumename>/<groupname>
). Оба хороши, и оба соответствуют FHS./srv/<groupname>
или/srv/<someprefix>/<groupname>
: в соответствии с FHS,/srv
содержит специфические для сайта данные, которые обслуживаются этой системой . Затем FHS продолжает объяснять, что методология, используемая для именования подкаталогов в / srv, не определена . Исходя из моего личного опыта, большинство администраторов, использующих/srv
каталог , используют подкаталог для каждого клиента, сайта или проекта, а затем размещают каталоги данных на этом уровне. Как бы вы это ни структурировали,/srv
Вполне допустимо хранить файлы для совместного использования несколькими пользователями, если вы разумно полагаете, что совместное использование этих файлов само по себе является услугой. Задайте себе вопрос: «Имеет ли смысл в конечном итоге обмениваться этими файлами через SMB / NFS / AFS / GIT / ...?» Если это так, то вы можете обоснованно считать, что ваш каталог является локальной службой общего доступа к файлам, и, таким образом, хранить их в подкаталоге/srv
, даже если нет демона, фактически обслуживающего эти файлы в других системах./home/<groupname>
или/home/<some-prefix>/<groupname>
: FHS гласит:/home
это довольно стандартная концепция, но это явно файловая система для конкретного сайта . Абсолютно не требуется, чтобы каждый каталог/home
был именем фактического пользователя, и допустимо иметь подкаталоги для групп, хотя следует соблюдать осторожность, чтобы избежать возможных конфликтов между группой и пользователем. Тем не менее, я видел, как эта стратегия использовалась в нескольких крупных установках (особенно в университетах) с некоторой стратегией сравнения, чтобы избежать возможности конфликта; например, реальные пользователи будут иметь свои домашние каталоги/home/students/<studentid>
,/home/teachers/<username>
или/home/staff/<username>
, в то время как общие материалы будут, например, помещены в/home/workgroup/<workgroupname>
, Когда-нибудь они также будут подразделением отдела; Тем не менее, вы поняли идею. Честно говоря, мне лично не нравится эта стратегия, но она немного облегчает ситуацию, когда/home
она распределяется между несколькими серверами (например, через NFS), поэтому она имеет тенденцию быть предпочтительной в очень крупных организациях.источник
Я бы лично выбрал / usr / share / movies-энтузиаст или / opt / movies-энтузиаст
источник
Я предлагаю создать отдельный каталог, например / opt / movies, установить для них соответствующие разрешения для пользователей и групп, а также использовать диск,
quota
чтобы избежать его полного потребления.источник
Это такой же комментарий, как и ответ (поэтому, пожалуйста, не отрицайте меня за это!), Но это слишком долго, чтобы уместиться в комментарии.
Я делаю две вещи, которые избегают проблем, с которыми вы сталкиваетесь.
1) Я делаю отдельный раздел из всего свободного места на системном диске и помечаю его как пространство данных. Вот где все мои текущие медиа-файлы и другие данные. Он автоматически монтируется как / media / dataspace, и я помещаю все, что является «данными», в каталог, называемый «данные», чтобы отделить его от таких вещей, как рабочие файлы, виртуальные или виртуальные образы, которые я не хочу регулярно резервировать.
Использование отдельного раздела имеет дополнительное преимущество: если он заполняется, он не ставит под угрозу мою систему, как если бы он хранился в / или / home.
2) Я поместил большинство своих данных / носителей, особенно те, которые я не использую «сейчас», на другой физический диск (USB в моем случае с ноутбуком). Это упрощает резервное копирование и подключение к другому компьютеру в случае необходимости.
источник