LINUX.ORG.RU

Общее хранилище и стандарты

 ,


0

3

Привет, ЛОР.

Давай займемся стандартизацией десктопа, потому что больше некому. А речь пойдет вот о каком аспекте. Есть домашняя система с количеством юзеров более одного. В ёй торчит [допустим один] накопитель со свалкой. Задача: свалка должна быть доступна всем юзерам в равной мере; помимо этого, свалка должна шариться кусками c RO, а кусками с RW по сети, допустим, по CIFS.

Вопрос: в каком именно каталоге следует создавать точку монтирования общего накопителя? Обратимся же к стандартам.

В первую очередь у нас есть, разумеется, Filesystem Hierarchy Standard. Там все по-взрослому: LSB Workgroup, The Linux Foundation, копирайты-копирайты, третий десяток лет в разработке, ух. Поищем же, куда нам дозволяется присунуть свой HDD.

  • /media: «This directory contains subdirectories which are used as mount points for removable media». Не то.

  • /mnt: «This directory is provided so that the system administrator may temporarily mount a filesystem as needed». Не то.

  • Где-нибудь в /usr: «/usr is shareable, read-only data». Не то.

  • /var: «contains variable data files», по-русски это вроде и есть «свалка». Ну-ка, ну-ка.

    • /var/run: «These functions have been moved to /run». Хмм, ладно, посмотрим –
  • /run: «This directory contains system information data describing the system since it was booted». Эээмм. «Files under this directory must be cleared (removed or truncated as appropriate) at the beginning of the boot process». Мнээээммм…

Ладно, у нас же еще есть XDG Base Directory Specification. Буква «D» обозначает «Desktop», то есть мы зашли по адресу и сейчас нам помогут. Там всего пара экранов текста, в авторах четыре человека, среди которых мы можем видеть легендарного архитектора Поттеринга.

Отбросив всё насчет «user-specific», видим:

«There is a set of preference ordered base directories relative to which data files should be searched. This set of directories is defined by the environment variable $XDG_DATA_DIRS». О, дата файлс, клево, а куда совать-то?

«Such file should be installed to $datadir/subdir/filename with $datadir defaulting to /usr/share». А /usr у нас по FHS что? Правильно, read-only.

Да куда ж его присунуть-то?? Я джвадцать лет жду!

P.S. Граждане, я понимаю про «де-факто». Интересно было бы знать, куда кошерно смонтировать шареную помойку на ваш личный взгляд. Возможно, эта тема когда-нибудь даже превратится в опрос.

(Да просто смонтировать в /srv/svalka и раздавать самбой/NFS локальным юзерам, но лучше купить NAS, я всё понимаю бггг).

★★★★★

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

Де-факто — либо /media, либо подкаталог в /mnt (оставляя для собственно временного монтирования какой нибудь /mnt/temp), хоть это и нарушение буквы стандарта. А вообще да, бардак, который даже какие-нибудь самопровозглашённые законодатели стандартов, типа Редхата, чинить так и не думают.

alegz ★★★★★
()

Ну, например, есть де-факто стандартный каталог /export. Также на усмотрение локального администратора определяется структура в /srv. Ну и никто не запрещает создать [/home]/shared или /data, в конце концов. А стандарт FHS вообще не очень, прямо скажем.

anonymous
()

Либо в /mnt/share либо в /home/share, либо в какую-то кастомную директорию в корне. Первый путь это с акцентом на тот факт, что оно туда именно смонтировано. Второй - может быть и не отдельный раздел а просто директория на разделе /home.

Точно не в /usr /var /run /media.

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

интересно мнение общества.

По идее стандарты нужны для построения дистров, к примеру чтобы udisks монтировал везде в одно и то же место, а /usr, если что, можно было бы сделать read only между апдейтами. А если твоя штука будет существовать в единственном экземпляре, то ей стандарт не очень и нада.

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

А если твоя штука будет существовать в единственном экземпляре, то ей стандарт не очень и нада.

Вот именно так всё в этой нашей айтишке и начинается. А потом годами пытаются понять, что вообще за /usr, откуда взялся и нахер нужен. Да не годами, десятилетиями.

Лично ты куда бы монтировал (или монтируешь)?

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

Не, ну а где ещё? Я в своё время задался вопросом «Куда следует монтировать диски?». В винде они идут тупо буквами. Получается что как бы в системе несколько «корней». А в линуксе где должны быть? Почитал что пишут в сети и решил, что буду монтировать всё в медиа. с тех пор и получается, что

$ ls -la /media/
итого 12
drwxr-xr-x  5 root root 3488 мая 30  2024 .
drwxr-xr-x 16 root root 4096 мар 11 23:14 ..
drwxr-xr-x 10 root root  121 апр 30 11:32 hdd0
drwxr-xr-x  3 root root   26 янв  4  2024 hdd1
drwxr-xr-x  4 root root 4096 мая 30  2024 ssd0

как бы да, но блин

Ага. Но если нужно ехать, то пока так.

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

Не, ну а где ещё?

А Я О ЧЕМ? Например есть целый каталог аж в корне под названием /mnt, что есть сокращенное «mount», ну и казалось бы - возьми и умонтируйся. Но тут вылезает FHS и говорит, что туда можно лазать лишь «временно»! И это «временно» явно не в смысле «пока железо не сгниет» или «пока мы все не умрем», и даже не «от ребута до ребута». А вот чтобы пришел одмен с накопителем, смонтировал, скопировал, отмонтировал и всё.

А /media - написано же, это флэшки, диски, т.е. именно та рассыпуха, которая обычно МОНТИРУЕТСЯ ВРЕМЕННО, но совать в /mnt ее почему-то не полагается, а придумали отдельный каталог.

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

«Файлопомойка» это отдельный сервер?

Это приложение/сервис на сервере. Для обеспечения работы этого приложения можешь добавлять свои директории в /var, /run и тд, согласно стандарту

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

Я просто руководствовался логикой: если штатного места не предусмотрено, то нужно выбрать такое, которое кажется наиболее подходящим и логичным. Выбор был между созданием нестандартного каталога в корне и медиа. Тогда я только осваивал систему, поэтому не рискнул трогать корень и решил использовать медиа.

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

Временно имеется ввиду в том плане, что для постоянного можно придумать путь, отражающий смысл раздела и его место в системе.

Данные юзеров должны лежать в /home, соответственно туда. Я ещё /home2 иногда делаю (точка монтирования).

В /var, если что, должны быть системные данные (кеш пакетного менеджера, например), поэтому оно не подходит. Хотя дистроделам это не мешает устраивать идиотизм с хранением в /var mysql-базы (хотя возможно имеется ввиду что дефолтно она там для системных нужд, а если ты настраиваешь рабочий сервер базы то перенесёшь её в более подходящее место сам).

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

Я в /media делаю. Мало ли, что там FHS про removable говорит. Другие варианты хуже. Ну как вариант, можно ещё прям в корне.

А так… ну будем считать, что эти HDD и разделы у меня removable. Технически я же могу их того, remove’нуть. Ну вот и пускай :)

Последнее натягивание совы на глобус не на полном серьёзе, конечно. Но решений лучше не придумали — во всех тот или иной компромис.

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

но совать в /mnt ее почему-то не полагается, а придумали отдельный каталог

Потому что /mnt один, а флешек и дисков может быть много. /mnt используется для временного монтирования обычно именно сам по себе, а не подкаталоги в нём.

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

Или разговор про стандартизацию приложения/сервиса «Свалка».

Это программно-аппаратный многопользовательский комплекс с возможностью локального использования. Из десктопа под люниксом и торчащего в нем дополнительного HDD. Го стандартизировать, я всецело за. Куда монтируем-то?

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

Тоже недавно понадобилось добавить SSD, долго думал куда же его смонтировать, и, «временно до появления стандарта», смонтировал в /data

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

Ну я же говорю, я в /media их монтирую. /mnt именно для совсем временной фигни — я туда всякие iso монтирую, чтоб что-то сделать и отмонтировать сразу, или если через чрут ставлю другую систему, всякое такое.

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

Только вот это должен быть некий отдельный public user, типа /home/lunapark/blackjack и прочие подкаталоги с соответственно наколдованными правами. Но это отдельная тема уже.

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

Ну да, это я на случай, когда диск принадлежит одному юзеру.

/home/lunapark/blackjack

Вот кстати у бсдунов я видел традицию монтировать всякое в /home/some_shit

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

Я вначале так и хотел сделать, но потом передумал. Допустим, у меня есть блин на 1 тб. Я создаю на нём единственный раздел и хочу использовать его как для торрентов, так и для игр, например. Трансмишн у меня работает от отдельного пользователя. Для игр тоже отдельный пользователь. Поэтому, я просто монтирую его в медиа и на диске создаю 2 каталога для разных пользователей. Как-то так.

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

С одним-то понятно, куда угодно в хомяк монтируйся и юзай (я вообще не понимаю, нафига у udisks юзерский том со всякими uid=...,gid=... монтируется за пределами хомяка).

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

Куда монтируем-то?

Туда, куда не запрещено, чтоб другие приложения не конфликтовали, например, в /srv/$SRV_NAME/.../.../никто_не_догадается/homevideo. Для локальных юзеров (посредством pam) расшариваем (symlink, mount bind) в пользовательские xdg_dir. Для сервиса обеспечивающего доступ по сети - согласно настройкам сервиса.

Это внутренний стандарт, которого придерживается админ локалхоста.

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

Монтировать /mnt целиком это какая-то глупость, по-моему. Конечно в нём надо директории создавать. Обычно примерно с такими названиями: /mnt/ada0s1h или /mnt/ada2, и монтируется туда соответственно /dev/ada0s1h или /dev/ada2. МОнтируя его целиком, ты как будто гарантируешь, что у тебя никогда не возникнет двух задач одновременно, в которых он нужен.

Нет, разница между mnt и media совсем другая, а именно mnt это ручные монтирования с произвольным именованием, а media это директория для всяких гуи (и аналогичных) автоматизаций.

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

я вообще не понимаю, нафига у udisks юзерский том со всякими uid=...,gid=... монтируется за пределами хомяка

Затем чтобы автоматическая точка монтирования была в системно-управляемом tmpfs и не устраивала всякие накладки когда юзер захочет в своём home что-то переместить или вложенно монтировать.

firkax ★★★★★
()