LINUX.ORG.RU

Разница между Login Shell и SSH Login?

 , , ,


0

3

По мотивам этого issue.

Ладно, согласен, что sudo -u user_foo -i как-то не по systemd’шному загружает окружение для данного юзера, в отличие от ssh login, например. Будь по-вашему.

Я бы уже промолчал, будь это единичный случай)

Но вот, сегодня нужно было поиграться с podman, а картина то примерно аналогичная.

  1. «Ныряю» в юзера по sudo -iu

  2. systemctl --user enable --now podman.socket

Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined

  1. Делаю login user_foo, выполняю ту же самую команду, всё без изменений.
  2. Логинюсь по ssh как user_foo и только в это случае все работает, как и ожидалось.

Когда Я так отстал от жизни и технологий, а также вопрос по сабжу?!

Интуиция подсказывает, что у обоих явлений причина одна.

Так чем же все-таки в современном GNU/Linux Full authenticated session отличается от login, sudo -iu и пр. ?



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

Вот нифига не интуитивно)

14 лет тулзе(systemd), пустила корни в большинство систем, но сделала это весьма своеобразно.

Кастую @intelfx, чтобы рассказал как это устроенно внутри, когда мы все перейдём к коммунизму run0 и как я должен жить и работать с такими инструментами, чтобы не рвать волосы на голове?

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

Т.е. я еще должен в систему доустанавливать systemd-container… ну приемлемо, см. выше про 14 лет совместной жизни, вопрос в другом: а почему полноценный логин теперь только по SSH ?

Алиса и предположить не могла, насколько глубока оказалась кроличья нора…

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

Как не интуитивно? Все же знаю, что systemd пожирает другие команды и он не остановится.

А про su даже Хакер давным давно (в 2015 году) написал: systemd поглотил функциональность команды su

и как я должен жить и работать с такими инструментами

Осторожно, тонкий лёд. Сейчас вас будут пинать и хейтеры и фанаты systmed.

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

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

Всё очень просто, ставишь дистр без системг и больше оно тебя не беспокоит.

Кстати интересно а бывают poettering-free дистры?

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

Сейчас вас будут пинать и хейтеры и фанаты systmed

Не страшно, я соскучился по старому доброму ЛОРу)

Мне интересно другое, как с этим живут systemd-евангелисты?

Вот и подожду здесь, пусть поделятся со мной священным знанием ;-)

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

Всё очень просто, ставишь дистр без системг

И перечесть их можно на пальцах одной руки: Devuan, Slackware, Void и парочка маргинальных дистров о которых я не помню.

Печаль(

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

Евангелисты не любят писать в темах-проблемах systemd. Кастанутый вами последний раз писал месяц назад в теме про open-rc, понятно, советую установить systemd.

Печаль

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

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

При случае проверю этот вариант, спасибо.

P.S. Справедливости ради, в ОП (для обоих случаев) задача как раз обратная из рута переключиться в обычного пользователя, полноценно загрузить его окружение (юзера) и начать сессию.

Мне, как человеку, который во все эти ваши systemd-нюансы вникает редко, кажется: -Ну, что может быть проще!

А оно вон оно как…

Но для полноты картины ваш вариант тоже полезен)

Twissell
() автор топика
Последнее исправление: Twissell (всего исправлений: 4)
Ответ на: комментарий от usermod

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

Пытаться так неумело соскочить с темы обсуждения,

это надо очень постараться.

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

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

И использовать для демонстрации недоработок режимы, которые были немыслимы раньше, это тоже несколько странно.

В sudo ксть куча ключей, которые позволяют тонко решать, что остается от текущего пользователя, а что он нового. И это удобно.

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

Ну объективности ради, подман - недоделок

Вы меня настойчиво склоняете к офтопу, но тут я таки соглашусь.

И, раз пошла такая пьянка, ткните меня в документацию, как сделать в современном докере rootless контейнер.

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

Podman мне было проще и быстрее поднять, ради пары бинарников в контейнере.

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

опция –user

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

usermod
()

Кстати говоря, по поводу ишуйки из ОП я даже Поттерингу напрямую писал, ответа от него не последовало и я почему-то не удивлен.

Называется «Мы и Они».

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

опция –user

Почти согласен)

Типа вот так ?

Хорошо, а если у меня просто голый дебиановский имидж с Python 3.x И условного юзера с uid 1001 в его контейнере не будет.

Этот ключ его, что создаст?

P.S. Мой последний офтоп-пост по теме runtime’а для контейнеризации.

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

Надо осваивать инструмент. В докер есть прекрасная опция монтирования бинд. Для работы от юзера надо сбиндить два файла passwd и shadow в ro в контейнер. Если нужны иксы или доступ к другим сокетам, биндишь /run. Погугли, почитай, на стеклверфлоу и гитхабе все записано

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

Для работы от юзера надо сбиндить два файла passwd и shadow в ro в контейнер.

Я думал об этом, но мне это показалось слишком.

Потому и начал обмазываться podman-говнецом)

Погугли, почитай, на стеклверфлоу и гитхабе все записано.

Всё так, но некоторые компромиссы для меня неприемлимы.

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

Попахивает бредом.

Не большим бредом, чем в контейнер прокидывать системные файлы хоста.

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

Пускай и концептуально, но изоляция контейнер-хост нарушается

Именно тем и хорош podman, что не нужно городить таких костылей, хоть пишут, что он уже викинут на мороз и имеет свои врожденные недостатки.

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

Зависит от задачи.

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

По сути, это виртуалка с минимумом оверхеда. Верно? В таком случае можно и нужно не биндить ему системные файлы, в создать их из одной строчки (можно динамическм, скриптом выкусывать и вперед)

У меня же речь идет о тесной интеграции. Докер там нужен только для запуска программы в родном ему окружении. И программы там самые разные. Да, нжинкс, нжинкс юнит нужны и прекрасно работают. При этом я им даю их конфиги из /etc, логи в /var/log сокет в /run и т.д. Естессно, запускаются они стандартным юнитом в системд. Со стороны вообще не понять, что это докер. Просто из воздуха на центоси вдруг живет нжинкс с тлс 1.3 и юнит с питон 3.12 и только.

Но это все ерунда. Почему бы не поставить питон 3.12 в докер? Как системный, просто запуск в докере, с доступом и запуском, как у обычного питона? С запуском от любого пользователя, крторый его и запускает? Что в этом плохого или несекурного? А если иксовая программа? А если мате-десктоп? В чем проблема?

Секурнее? Да еще как! все что не меняется, бинди в ro. Даже рут не изменит. Контейнер запускается каждый раз заново, от чист. Никаких побочек. Разве плохо? Цертбот у меня просто программа. Но в докере. Ничего нк может, кроме своего. Но в свои обычные директории пишет и жрать не просит. Разве это не изоляция?

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

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

Если Вы понимаете о чем я ;-)

Хотя, с certbot’ом на тестовой виртуалке как-нибудь попробую.

Спасибо.

P.S. И похоже на переизобретение какого-нибудь NixOS из костылей, но см. выше о пространстве глупых споров)

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

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

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

Ладно, с наступающим!

usermod
()