LINUX.ORG.RU

X11 и выполнение «su -l»

 , ,


0

1

Я уже черт-те сколько пользуюсь линуксом, но вот только сейчас что-то захотелось мне от рута запустить иксовое приложение. И я обнаружил, что нифига не работает: переменная DISPLAY не передается «по наследству», несмотря на ключик -l.

Запихал руту в ~/.bashrc добавление xauth от пользователя + установку DISPLAY:

xauth merge /home/eddy/.Xauthority
export DISPLAY=:0

Иксовые приложения стали запускаться, однако ведь этот способ совершенно дрянной: если я зайду по ssh, получится хрен знает что. Если я сделаю su в консоли, то тоже черт те что получится.


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

Узнать, какой пользователь сейчас иксы запустил, автоматом xauth merge сделать, узнать нужное значение $DISPLAY и подставить? А готовым скриптиком не поделитесь?

☆☆☆☆☆

Похоже, без оберток вроде sux ничего не получится ☹

Ведь надо сперва узнать значение переменной DISPLAY у юзверя, который делал su -. Если бы это значение передавалось в su, было бы значительно проще...

Eddy_Em ☆☆☆☆☆
() автор топика

Иксы - страшенное legacy. Жду не дождусь когда Валеный отправит их на пенсию.

Hertz ★★★★★
()

Вроде все просто:

1. Открываешь терминал
2. Пишешь su
3. Вводишь пароль
4. Пишешь sunflower &
5. Получаешь рутовый файл менеджер

Или я не понял, что нужно получить.

afterlanding ★★
()
Ответ на: Удваиваю. от NeverLoved

Алсо, всегда работало sudo gparted во всех юзанных дистрах, без каких-либо проблем.

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

Добавь в теги Arch и спроси сам. Я школоарчик видел едва ли два раза в жизни.

Ты же вроде генту осилить пытался?

NeverLoved ★★★★★
()

как в этом случае решать проблему?

gksu/kdesu или что там за окружение.

Umberto ★☆
()

Не знаю, то ли это, что требуется, но я таким образом переключаю пользователя (после захода через ssh -X):

$ ./switch_user.sh user

switch_user.sh:

#!/bin/sh
tmpfile=/tmp/xauth_tmp_entry
xauth extract ${tmpfile} :$(echo $DISPLAY|cut -d : -f 2 )
chmod a+r ${tmpfile}
su $1 -c "xauth merge ${tmpfile}; bash"
rm ${tmpfile}
Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 1)
Ответ на: комментарий от Evgueni

Они просто не будут запускаться ☺

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

Это — вообще костыль. Тогда уж sux или свой баш-скрипт, который будет выдергивать DISPLAY и делать xauth merge для его значения.

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

Посмотреть, работает ли оно (гента в чруте).

// ага, я знаю, что надо было сделать либо sudo либо su в обычного пользователя. И знаю, что из-под рута вообще нельзя иксовые приложения запускать.

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

Еще не хватало этим говном пользоваться (я про KDE).

Eddy_Em ☆☆☆☆☆
() автор топика

в дебианте в lxterminal просто sudo pcmanfm и вот тебе рутовый фм
хз как там в гентах/арчах
или тебе надо отдельные иксы рутовые?

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

Некошерно, ибо небезопасно.

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

Ай, спасибо, добрый человек!!!

Я и не догадался туда залезть!

Что интересно, в файле su эта строчка была, а вот в файле su-l (что логично вроде как) — фигвам.

Добавил — заработала, зараза! УРААААА!!!

Eddy_Em ☆☆☆☆☆
() автор топика

странно всё это... зачем именно -l?

$ su
Password:
# env | grep DIS
DISPLAY=:0.0
# audacious
УМВР.

переменная DISPLAY не передается «по наследству», несмотря на ключик -l

почитай man su внимательно

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

а что не так с сетевой прозрачностью? в Xorg она вроде есть, не?

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

Как бы вам объяснить — это совсем не то. Изучите вопрос сетевой прозрачности получше.

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