LINUX.ORG.RU

Непонятное в Manjaro

 


0

1

Интересно, с какой целью в новой манжаре сделали вот так:

uname -a                                                                                                                                                                              
Linux manjaro25 6.12.48-1-MANJARO #1 SMP PREEMPT_DYNAMIC Fri, 19 Sep 2025 16:11:04 +0000 x86_64 GNU/Linux

env | grep XAUTH                                                                             
XAUTHORITY=/tmp/xauth_POXzBc

Перемещено leave из admin



Последнее исправление: man-from-36 (всего исправлений: 1)

У меня вывод то что и ожидается

$ uname -a                                                                                      
Linux igor-vivobookasuslaptopx431fas431fa 6.6.107-1-MANJARO #1 SMP PREEMPT_DYNAMIC Fri Sep 19 17:32:57 UTC 2025 x86_64 GNU/Linux

$ env | grep XAUTH                                                                               
XAUTHORITY=/run/user/1000/xauth_elyLqU

$ xauth list                                                                                     
igor-vivobookasuslaptopx431fas431fa/unix:1  MIT-MAGIC-COOKIE-1  1c876ee42ee429518b786ff38968d6fe
#ffff##:1  MIT-MAGIC-COOKIE-1  1c876ee42ee429518b786ff38968d6fe

$ echo "$DISPLAY"                                                                               
:1
$ echo "$XAUTHORITY"                                                                             
/run/user/1000/xauth_elyLqU

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

Вопрос в другом – после очередного обновления системы авторизация переехала из /run/user/1000 в /tmp. Это с какой целью?

У нас сервис запускает приложение от имени другого пользователя, поэтому ищет юзерскую авторизацию. Работает (и и щет авторизацию) на куче разных линуксов, но вариант с размещением ее в /tmp вижу впервые

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

У нас сервис запускает приложение от имени другого пользователя, поэтому ищет юзерскую авторизацию. Работает (и и щет авторизацию) на куче разных линуксов, но вариант с размещением ее в /tmp вижу впервые

Её надо не «искать» а брать из $XAUTHORITY. Хардкодить какие-то пути, да ещё и походу перебирать списки файлов в директориях для этого - заведомо порочный подход.

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

Все так. Но сервис запускается до входа юзера в систему и ничего не знает о том, кто залогинится и какая у него будет авторизация… Был еще вариант с перебиранием файлов /proc/…./env, но его по какой-то причине забраковали

man-from-36
() автор топика
Ответ на: комментарий от man-from-36

Пытаться искать авторизации перебором (и перебор /proc/ туда же), тем не менее, плохой подход. И приравнивать «залогинился» к гуи-сессии тоже нельзя. Логин это логин, гуи-сессия это запущеный процесс иксов.

По-нормальному это делается хуками на запуск гуи. В дебиане они в /etc/X11/Xsession.d/ - туда же надо положить свой файлик в составе пакета этого сервиса (изучив как они устроены перед этим). В других дистрах они тоже должны быть, потому что везде поддерживаются всякие dbus и ssh-agent, а их больше негде запускать.

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

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