Feb. 19th, 2020

vitus_wagner: My photo 2005 (Default)
Тут я подумал. что основные трудности у главной героини "Саги дизеля и льда" начнутся только тогда, когда она успешно доведет вездеход до своей родной страны.

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

Элен может быть сколь угодно крута как механик-водитель, биатлонист, штурман или кто там ещё, но с точки зрения закона она - несовершеннолетняя школьница, прогулявшая два года занятий. И прав на вождение тяжелой гусеничной техники ей ещё по возрасту не положено. А принц с оруженосцем вообще какие-то мутные кадры без документов и подданства.

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

У родителей Элен было по крайней мере жильё. Коттедж или квартира пока непонятно, но таки жилье уровня верхнего среднего класса. Так что какой-нибудь троюродный дядя вполне мог начать облизываться на это имущество и пытаться объявить Элен с отцом пропавшими без вести.
vitus_wagner: My photo 2005 (Default)
Общими усилиями в предыдущей дискуссии мы нашли решение, которое меня более-менее устраивает.

Удалось добиться следующего:

1. При входе по ssh автоматически запускается screen. Вернее, подцепляется старый если он есть или запускается новый, если нет.
2. При открытии окна терминала в сессии LXDE наиболее привычным для меня способом, это окно тоже подцепляется к существующему screen (открывая внутри него новое окно). Чтобы получить чистый xterminal без screen нужно сделать на пару кликов мышкой больше.

Соответсвенно, при обрыве связи, падении X-сервера или необходимости выйти из X-сессии, процессы запущенные в терминалах продолжают работать.

При этом в screen доступен ssh-agent последней начавшейся сессии (GUI-шной или ssh-ной).
Заморачиваться и делать стэк сессий. чтобы если последнюю сессию закрыли раньше предпоследней, ssh-агент от предпоследней продолжал работать, я не стал.

Недостатки у получившегося решения следующие:

1. Не работает полоса прокрутки у LXTerminal. Прокручивать вывод приходится средствами screen.
2. Если у нас много машин с таким сетапом и мы постоянно ходим с одной через другую на третью, то
придется долго думать сколько букв a нажимать между Ctrl-A и d. Все усложняется тем, что у меня есть несколько машин, на которых я могу сидеть в сессии LXDE за локальным экраном, и на все из этих машин я могу зайти по ssh из сессии на другой машине.
3. Распихивать эту конструкцию по пяти десяткам виртуалок и контейнеров - лень. Может и правда собраться и сделать там bind-mounted ${HOME}?
4. И совсем уж засада если есть машины куда несколько человек ходит одним и тем же пользователем. [personal profile] beldmit, помнишь казахскую HP/UX с "Warning, you are igus" в /etc/issue?

Делается это так:

1. В .profile (для входа по ssh) и в .xsessionrc (для lxde) если определена переменная SSH_AUTH_SOCK, делается симлинк с этого сокета на сокет с фиксированным именем. (если у вас ${HOME} используется на нескольких машинах, то либо включайте в это имя $(hostname), либо выбирайте его в /tmp или /run)
2. Переменная переустанавливается, чтобы показывала на это фиксированное имя.
3. Последней строчкой в .profile пишется exec screen -xRR
4. Шорткат в GUI-сессии, через который чаще всего открывается окно терминала, переопределяется так чтобы сразу запускал в этом терминале screen -x -p +

security implications у этого, как мне кажеется, минимальные. Если кто-то может читать аутентификационный сокет ssh-agent, то этот кто-то с тем же самом успехом прочитает /proc/*/environ и найдет там значение SSH_AUTH_SOCK для нужного ему пользователя.

Конечно, если у нас NFS-mounted ${HOME} (у меня таких, к счастью, нет), то придется либо создавать симлинк на сокет за пределами ${HOME}, в /tmp или /run, либо вписывать в его имя $(hostname).
vitus_wagner: My photo 2005 (Default)
Решил прикрутить ко всем своим lxc-контейнерам (а их у меня на моей рабочей машине 30 штук) bind-mounted /home.
Для этой цели пришлось, естественно, синхронизироват uid-ы пользователей между всеми контейнерами.
И тут вдруг внезапно altlinux-ы 7 и 8 перестали меня пускать. shell request failed говорят. А внутри в логи пишут "altlinux-7 sshd[2758]: error: do_exec_pty: fork: Resource temporarily unavailable"
Почему-то вот ресурса числа процессов на юзера, которого им вполне хватало, хватать перестало. То ли там ошибка в cgroups и они считают процессы на хосте и других контейнерах, то ли не знаю что.
Вылечилось увеличением лимитов на nproc в /etc/security/limits.d/50-defaults.conf раза в четыре.
vitus_wagner: My photo 2005 (Default)
https://mobile.slashdot.org/story/20/02/19/028201/driver-stranded-after-connected-rental-car-cant-call-home

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

В конце концов плюнула и вызвала эвакуатор другой компании, который её и спас.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 4th, 2025 08:58 am
Powered by Dreamwidth Studios