LINUX.ORG.RU
ФорумTalks

Переходим на SAMBA всем ЛОРом

 ,


3

3

SAMBA — это новый стандарт файлообмена, Linux 5.15 ещё не релизнулось, но уже сейчас можно скачать Linux 5.15-6rc, запустить make menuconfig и включить SMB_SERVER в разделе File systems > Network File Systems.

# uname -a
Linux host 5.15.0-rc6 #1 SMP Mon Oct 18 13:12:46 MSK 2021 x86_64 Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz GenuineIntel GNU/Linux
# crux
CRUX version 3.6
# cat /boot/config-5.14.15-rc6 | grep SMB_SERVER
CONFIG_SMB_SERVER=m
CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y
# CONFIG_SMB_SERVER_KERBEROS5 is not set

Ребята молодцы, сервер для файлообмена прямо в ядре, теперь расшарить файлы между устройствами — вообще не вопрос, просто запускаешь сервер в ядре и вот оно, корневая файловая система как на ладони.

А для запуска требуется всего-то доустановить ksmbd-tools, набор утилит для управления самба-сервером из юзерспейса, — из зависимостей у неё только glib (не путать с glibc) и libnl.

Pkgfile для CRUX, rc.d скрипт запуска

# modprobe ksmbd
# mkdir /etc/ksmbd
# wget -O /etc/ksmbd/smb.conf https://raw.githubusercontent.com/namjaejeon/ksmbd-tools/master/smb.conf.example
# ksmbd.adduser -a username
# ksmbd.mountd

Заходим с любого Windows-устройства и видим работающую шару, ура!

Забудьте про scp+tar и прочие мучения. Всем рекомендую!

★★★★★

Почему мне так хочется побыть душнилой и напомнить, что Samba != SMB?

h31 ★★★★
()

Я вот легко могу пробросить NFS-шару в интернет и подключиться к ней, зная IP-адрес сервера. SMB-шара такое позволяет?

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

HDD это прошлый век, все давно на nvme, а музыку и фотки хранят на SSD.

Вы забыли дописать «И живут на рублевке».

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

Нука поподробнее про волшебные «автомонтировщики» которые спасут при вставшей колом nfs на нестабильном канале.

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

А что smb какая-то «особенная» что бы не позволять? Или вы про smb over netbeui.

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

Я в свитере и с бородой, у меня только chmod и chown!

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

Ну, я последний раз NFS строил давно - на Solaris и FreeBSD. Хоть шатай свич, всё работало без зависаний.
Читай:
https://www.linuxjournal.com/article/6941

Интересное там это:
«Amd is started and attaches itself to the directory ... the kernel suspends the user's ls process and sends a message to Amd asking it to resolve the name kernel within the automount point»

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

Ну, я последний раз NFS строил давно - на Solaris и FreeBSD.

Я тоже давно, но на онтопике.

Хоть шатай свич, всё работало без зависаний.

Свич это считай стабильный канал. Даже опта до удаленных обьектов норм робила. Вот диалап это да-а... это реально не стабильный канал. Кстати спасибо огромное мгтс с их переводом на цифру, благодаря которой обычные мопеды перестали работать, а то бы заказчики до сих пор их пользовали и пох что стоит намного дороже чем dsl.

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

В статье не более чем про автомонтирование. А раком встает ведро.
Что бы два раза не вставать. Я перепробовал абсолютно все варианты(опции) монтирования. Благо: их(вариантов) не так много, объектов дофига, времени тоже дофига было.

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

Ещё раз: раком ядро встаёт когда оно не может ввод-вывод в смонтированный путь.

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

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

Описанные автомонтировщики - это прокси, путь смонтирован на них.

Они никак не юзают ведро?

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

К сожалению, я не знаю деталей. Но работает это, как я сказал.
Более того, это работало даже для флоппиков на солярке, когда вынимание смонтированного флоппика крашило ядро (но тут всё понятно - автомонтировщик успевал отмонтировать флоппик).

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

Но вот только шара - это дырявый кусок говна без кейсов.

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

Она и для мобилок не нужна. Чтобы перекинуть достаточно какого-нибудь простенького хттп сервера. Браузеры есть везде, у всех всё будет работать и перекидываться примерно со скоростью локалки без мам, пап и самбы в ядре. ФС нужна, когда что-то активно пишешь/читаешь в куче файлов, надо, чтобы твой девайс воспринимал удалённую фс, как локальную, а чтобы перекинуть фотки полнофункциональная удалённая ФС не нужна.

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

http работает только в одну сторону. а вообще ты им напиши. а то мужики-то не знают. код клепают зазря. напиши, спаси мир от глупости.

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

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

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

http работает только в одну сторону

Чоэта? Можно заливать, можно скачивать.

а вообще ты им напиши. а то мужики-то не знают

Знают. У них свои мотивы.

crutch_master ★★★★★
()

Обычная самба нормально работает. Пользоваться не буду.

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

а коммент выше не тебе слабо прочитать перед ответом?

Тот, на который я отвечал или еще выше?
хттп работает в обе стороны:
Есть сервер на пека:
Надо залить - открываешь в браузере, жамкаешь кнопку залить, заливаешь (прямо как во вкотнакте и прочих).
Надо забрать - жамкаеншь по ссылке и скачиваешь ровно также, как ты всегда это делал.
С вариантом телефон-телефон, да, надо ставить софт на *один из* телефонов, а не обновлять ПО вообще всем. Браузер у все есть штатный.
Я хз, почему до сих пор нет такого ФМа.

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

дело в том, что по накладным расходам это гораздо выше. это даже не нативный код, а транслируемый. ты типа сказал: раз вк с его тысячами серверов тянет php, то давайте и на мобильный девайс насуем всякого интерпретируемого *овна на lua и perl в юзерспейс и будем там контексты переключать, используя протокол столетней давности, который в первую очередь разрабатывался на отдачу. и это ты еще ничего про TLS, сертификаты и доверие не сказал. в то время, как smb3 предоставляет современный, безопасный интерфейс для обмена файлами в обе стороны, который полноценно реализован и используется _напрямую_ из windows-клиента. т.е. вместо нормального решения ты предложил костыли и противогаз типа как у тебя на аватаре. реализация сугубо необходимого функционала smb3 - это гораздо более чистый с т.з. инженера подход. плюс для юзера это выглядит в том же стиле, а не как еще одна стотысячная морда приложения из google-store.

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

Браузер у все есть штатный.

вот это, кстати, резонное замечание. из GC только что выкинули FTP, так почему бы не добавить SMB, как в windows IE.

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

дело в том, что по накладным расходам это гораздо выше

Накладные расходы на что? ЕМНП хттп достаточно шустрый и при передачи большого файла быстрее упирается в сеть, чем в проц.

то давайте и на мобильный девайс насуем всякого интерпретируемого

Никто не мешает напихать туда нативного говна, если так нравится XD

и это ты еще ничего про TLS, сертификаты и доверие не сказал

Нахрен они нужны в локальной сети, которая и так доверенная. Если голой жопой в веб, то да, что-то нужно, но и smb обычно не торчит жопой в веб.

_напрямую_

Накривую. Браузер/curl используется с любого клиента точно также.

вместо нормального решения

Чтобы скидывать фоточки - это нормальное и достаточное решение, что тебе не нравится? Полноценная ФС для фоточек - это оверкилл. Плюс вебприложение можно расширять как хочешь, а не страдать с убогим «проводником».

реализация сугубо необходимого функционала smb3 - это гораздо более чистый с т.з. инженера подход

Совать его в ядро - ну такое, особенно в свете эксплуатации недавних дыр. Т.е. были дыры в fuse, а тут будут дыры прям в ядро, круто.

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

Накладные расходы на что?

переключение контекста.

ЕМНП хттп достаточно шустрый и при передачи большого файла быстрее упирается в сеть, чем в проц.

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

Никто не мешает напихать туда нативного говна, если так нравится XD

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

Браузер/curl используется с любого клиента точно также.

в смысле юзер будет curl запускать?? браузер нет, не может самостоятельно put без webapp.

Полноценная ФС для фоточек - это оверкилл. Плюс вебприложение можно расширять как хочешь, а не страдать с убогим «проводником».

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

Нахрен они нужны в локальной сети, которая и так доверенная. Если голой жопой

голая *опа это у тебя вместо головы, видимо. аэропорт. бесплатный вай-фай.

Совать его в ядро - ну такое

не, это у тебя понимание темы «ну такое себе» :(((

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

переключение контекста.

Куда ты собрался его переключать? Зачем при скачивании/заливки файла как дикий переключать контекст?

ты предлагаешь запустить виртуальную машину для байткода

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

то есть? как ты предлагаешь писать интерфейс загрузки?

Так же, как пишут все остальные приложения, в т.ч. для работы с этим твоим smb.

и самое главное ради чего все эти костыли опять, если можно оставить только самое необходимое в ядре?

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

зачем использовать связку из httpd, чего-то еще для интерфейса, когда юзер с пк запустит эксплорер

И скочает свои файлы с андроеда?

и сразу начнет отсылать сетевые пакеты на андроид.

Хорошо, загрузит.

на андроиде только код обработки сетевых пакетов по сути.

Который httpd? Ну да.

а httpd не использует полноценно локальную фс что ли??

Фс через http - это webdav, который поверх этого самого хттп. Сам хттп нельзя использовать, как полноценную fuse.

ты предлагаешь использовать старый протокол, не приспособленный для задачи

С перекидыванием файлов он вполне себе успешно справляется. Тебе же это нужно, а не полноценную fs.

зачем расширять приложение?

Ну как тебе объяснить. Вот я юзаю fuse уже лет 10 - и самбу, и sshfs, и у них в общем-то нет кейсов, кроме как шифрования у sshfs.
Почему?
Как «папку» её использовать нельзя, потому что проблемы множественного доступа, похеренные «документы», выставление прав.
Хочешь чего-то большего, бекапов там каких-то, версионирования, нотификаций при изменении фс - хер тебе, это не задачи фс, пили костыли с боку
Каталогизация этой помойки, квоты, вменяемая работа с кучей дубликатов одного и того же - ну ты понял, это полная жопа.
В итоге получается, что шара - это кусок дерьма, лучше юзать облако (да, да, веб сервер с хттп во внутр.сети). Потому что сетевая ФС нахер не нужна. С ней не получается работать также, как с локальной.
Итак, теперь вы тут говорите, что в ядро пропихнули какого-то смб-кострата, когда обычное смб и так - не нужно без кейсов.
У тебя не получится мышкой таскать в эксплорере и ворд открывать в удалённой «папке». Ну да. Но у тебя и не должно получаться.

голая *опа это у тебя вместо головы, видимо. аэропорт. бесплатный вай-фай.

И ты такой сидишь с необновляемым китайфоном, на котором по дефолту открыта самба в ожидании прекрасного принца скрипт-кидди.

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

Как «папку» её использовать нельзя, потому что проблемы множественного доступа, похеренные «документы», выставление прав.

так вот жеж эти проблемы тебе и решил сабж!

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

а смартфон-то здесь причем?? какого хрена ты на нем все это хочешь развернуть?!

Фс через http - это webdav

нет, друг, ты конкретно путаешь file system и протокол. webdav - это тоже протокол. прикинь!

Так же, как пишут все остальные приложения, в т.ч. для работы с этим твоим smb.

ау! я тебя спрашиваю, как ты будешь писать _веб_ апп! На сях ты собрался писать веб-страничку для загрузки файлов?

Вебсерверы есть вполне нативные

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

Зачем при скачивании/заливки файла как дикий переключать контекст?

ну ты же будешь постоянно гонять данные от сетевухи в юзерспейс для httpd. а там дальше у тебя будет твой вебапп... на php или на чем ты его собрался писать? или сразу на сях?:)))

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

так вот жеж эти проблемы тебе и решили сабже!

Дооо. Интересно как.

нет, друг, ты конкретно путаешь file system и протокол. webdav - это тоже протокол. прикинь!

Протокол, через который ты монтируешь удаленную фс.

На сях ты собрался писать веб-страничку для загрузки файлов?

Представляешь себе, на сях есть аж целый curl. Так что для особо манерных, которым вирт. машина вдруг резко жить мешает, никакой сложности не представляет сделать http(s) + websocket клиент на сях с каким-нибудь кнопками.

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

И что? У тебя нет проблем, чтобы во вконтактик фоточки заливать, но чтобы делать тоже самое по локалки они внезапно появились. Нет, в локалке не нужен мегакрутой сервер, чтобы передать что-то посредством вебсокета без дикого оверхеда, пойдёт даже кирпич.

а там дальше у тебя будет твой вебапп... на php или на чем ты его собрался писать? или сразу на сях?:)))

Вебапп на клиенте так-то. А пхп - это про серверы.

ну ты же будешь постоянно гонять данные от сетевухи в юзерспейс

Боже мой! Какой оверхед! Как же мы всё это время гоняли торренты в юзерспейсе со скоростью сети? А как всё остальное скачивали? Надо встроить libtorrent и апач с нодой в ядро.

crutch_master ★★★★★
()

Заходим с любого Windows-устройства

Я за бан.

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

Представляешь себе, на сях есть аж целый curl.

curl - это не webapp. первый работает на клиенте. второе - на сервере. ты опять не понимаешь, о чем говоришь.

Вебапп на клиенте так-то. А пхп - это про серверы.

я ж говорю, ты реально не шаришь.:((( https://en.wikipedia.org/wiki/Web_application

A web application (or web app) is application software that runs on a web server.

никакой сложности не представляет сделать http(s) + websocket клиент на сях с каким-нибудь кнопками.

ты сам хоть один сделал в своей жизни? или с дивана виднее? я думаю, второе.

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

Мне не интересно играть с тобой в угадайку и выяснять что ты там не понял. Ближе к сути.

тебе ненеинтересно, а ты тупо не разбираешься в том, о чем говоришь.

Протокол, через который ты монтируешь удаленную фс.

WebDAV (Web Distributed Authoring and Versioning) is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents directly in an HTTP web server by providing facilities for concurrency control and namespace operations, thus allowing Web to be viewed as a writeable, collaborative medium and not just a read-only medium.

где здесь что либо про монтирование фс, скажи на милость?

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

Боже мой! Какой оверхед! Как же мы всё это время гоняли торренты в юзерспейсе со скоростью сети? А как всё остальное скачивали? Надо встроить libtorrent и апач с нодой в ядро.

еще один полноценный тупняк. ты гонял на стационарнике, а не на мобильном девайсе, где проблемы энергопотребления в полный рост. сколько мне тебе писать про энергопотребление, чтобы ты понял?

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

где здесь что либо про монтирование фс, скажи на милость?

В контекст предмета обсуждения попробуй вникнуть для начала, вместо того, чтобы пыжиться и пытаться показать, какой ты умный. Напоминаю, что речь идёт про использование удалённо монтируемых фс, таких, как самба, sshfs или вебдав. Моя позиция в том, что нахер не нужны все три и вообще, fuse - это для всякого изврата типа ipfs, а всякие шары вторичны, если надо по-быстрому и ничего лучше нет.

ты реально не шаришь
ссылка на вики

Хммм. Умение нагуглить вики == шарить в теме?

curl - это не webapp. первый работает на клиенте. второе - на сервере. ты опять не понимаешь, о чем говоришь.

Ты декларировал определение, что такое webapp, а что такое не webapp, а я не шарю. Ну да, я не шарю в том, какие ты используешь определения. Давай оперировать понятиями фротнэнда и бекенда, если так будет проще.

ты сам хоть один сделал в своей жизни? или с дивана виднее? я думаю, второе.

Делал всякое с этим самым вебчиком уже лет 10. Ну, тебе там виднее с дивана, конечно, лул.

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

Напоминаю, что речь идёт про использование удалённо монтируемых фс

да не идет она про это:) это ты придумал от нензнания) в сабже речь о копировании файлов. вот и все.:)

Хммм. Умение нагуглить вики == шарить в теме?

нет, еще нет. а вот когда прочтешь, тогда получше будет. удачи.

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

а не на мобильном девайсе, где проблемы энергопотребления в полный рост

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

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

в сабже речь о копировании файлов

Ну а если про копирование файлов, то протоколы типа smb не нужны, они избыточны. У тебя же телефон батарейку будет задаром жрать на всякие там авторизации и проверки прав. Шифрование тем более не нужно, там вообще телефон сразу сдохнет.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.