LINUX.ORG.RU

Зачем avahi требуется одноименный пользователь?

 ,


0

1

Пытаюсь запустить avahi на embeded linux с одним пользователем root

# ./avahi-daemon 
Failed to find user 'avahi'.

Юзера добавить в систему проблематично, зачем вообще avahi нужен отдельный пользователь?

По сути задача такая: в локальной сети находить определенное устройство, получать его IP и начинать с ним TCP обмен сообщениями. Конечно можно самому написать обмен широковещательными udp пакетами, но мне кажется это все таки велосипед... хотя avahi и прочие Bonjour с zeroconf тянут столько зависимостей, что кажется это не самая плохая идея.

Правильно ли я вообще пытаюсь решить задачу?

avahi

а dbus ещё не умеет нулевую конфигурацию?

anonymous ()

задача такая: в локальной сети находить определенное устройство, получать его IP

arp -a|grep mac-address ?

mos ★★☆☆☆ ()

зачем вообще avahi нужен отдельный пользователь?

А зачем отдельный пользователь нужен для NetworkManager, pulsaudio, squid-у и прочим прочим прочим?

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

Устройства могут быть все разные, при включении на устройстве режима tcp-сервера остальные девайсы должны его обнаружить и начать обращаться. Нужно решить проблему ручного ввода IP сервера, учитывая, что все это происходит в одной подсети. avahi показалось самым логичным решением судя по описанию, но вот что-то настройка отнюдь нетривиальная для меня)

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

Так а проверили, avahi вообще сервер обнаруживает?

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

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

Сам по себе avahi сервер конечно не обнаруживает, нужно отправить ему эту инфу... «как он там сообщает о своем присутствии в сети» и как например?

id_thx1138 ()
Ответ на: комментарий от micronekodesu

Так а проверили, avahi вообще сервер обнаруживает?

он у него даже не запускается.

Вообще лучше посмотреть в сторону сервера, как он там сообщает о своем присутствии в сети.

ТС и пытается придумать как.

Avahi это больше про комбайны из коробки,

ерунда.

если у вас задача по обнаружению чего-то конкретного я бы не стал avahi использовать

чем он плох для «обнаружения чего-то конкретного»? (если автор не хочет велосипедить своего broadcast демона)

(тем более раз у вас там эмбедед)

mdns во всяких тостерах как раз и используется для стандартизованного поисках таковых в сети

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

В смысле? Зачем вам название сервера, тем более что какого-то конкретного названия нет)) В режиме сервера девайс запускает protobuf-c-rpc на определенный порт и ждет сообщений - все)

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

В чем проблема запустить авахи на твоем ембеде? Сам демон туда закинуть можно а юзера завести нельзя? К тому же наверняка это настраивается

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

Ну я как бы пользователь сборки... вроде как идея такая была - не усложнять маленькую простую систему)

Вот что пока получилось:

# ./dbus-daemon
No configuration file specified.
dbus-daemon [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--introspect] [--address=ADDRESS] [--nopidfile] [--nofork] [--fork] [--systemd-activation]
[1]+  Done                       ./dbus-daemon --config-file=/usr/share/dbus-1/session.conf
# ./../avahi/avahi-daemon 
Found user 'avahi' (UID 100) and group 'avahi' (GID 1000).
Successfully dropped root privileges.
avahi-daemon 0.6.31 starting up.
WARNING: No NSS support for mDNS detected, consider installing nss-mdns!
dbus_bus_get_private(): Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
WARNING: Failed to contact D-Bus daemon.
avahi-daemon 0.6.31 exiting.

id_thx1138 ()

Решение такое:

# 1. создаем пользователей
adduser -S -s /bin/false -h /var/run/avahi avahi
adduser -S -s /bin/false -h /var/run/dbus dbus

# 2. запускаем "правильно" dbus
./dbus-daemon --system

# 3. запускаем avahi-daemon, я для теста запустил через &
#    потом нужно будет оформить через start-stop-daemon, например 
./avahi/avahi-daemon &

# 4. проверяем - работает!
./avahi-browse -a

id_thx1138 ()
Ответ на: комментарий от micronekodesu

ты б разобрался для начала, что автор вообще делает.

mos ★★☆☆☆ ()

> avahi-daemon --help | grep privileges
--no-drop-root Don't drop privileges

Но, конечно, лучше сделать всё, как положено.

Laz ★★★★★ ()

Нельзя поменять имя юзера? Типичный гном

P.S. авторы рекапчта и те кто её используют на сайтах умрут в адских муках

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

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

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

неопрятно это, когда user в т.н. «system» диапазоне, а группа в «свободном», хотя если это твой дистрибутив, то почему бы нет
но всё равно неопрятно что они разные.

system-root ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.