Решено: Запуск программ с правами Администратора (Debian Lenny, KDE 4.1)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
-AR-
Сообщения: 52
ОС: Debian SID

Решено: Запуск программ с правами Администратора

Сообщение -AR- »

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

Код: Выделить всё

ar@debian:~$ su
Пароль:
debian:/home/ar# ark
No protocol specified
ark: cannot connect to X server :0
debian:/home/ar#


Код: Выделить всё

ar@debian:~$ su -
Пароль:
debian:~# ark
ark: cannot connect to X server
debian:~#


Система Debian Lenny, KDE 4.1.3 (kde4.debian.net), для работы с консолью использую Konsole и Yakuake
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: Решено: Запуск программ с правами Администратора

Сообщение KernelPanic »

kdesu -c "название_программы".
Пишите подобные недистроспецифичные темы в "Вопрос новичка"
Спасибо сказали:
Аватара пользователя
Nikky
Сообщения: 339
ОС: Debian GNU/Linux

Re: Решено: Запуск программ с правами Администратора

Сообщение Nikky »

Работайте через sudo.
Арфы нет - возьмите бубен...
Спасибо сказали:
Аватара пользователя
-AR-
Сообщения: 52
ОС: Debian SID

Re: Решено: Запуск программ с правами Администратора

Сообщение -AR- »

Такой команды нет в системе. Ближайший похожий пакет kdesudo 2.4-1.1 , но он для KDE3, а намешивать в системе библиотеки от разных сред я не планирую.

Использование sudo выдаёт ту же ошибку.

=====================================

Всё, проблема решилась добавлением строки %user ALL=(ALL) NOPASSWD: ALL в файл /etc/sudoers
Спасибо сказали:
Аватара пользователя
ivanbashlakov
Сообщения: 427
ОС: Arch

Re: Решено: Запуск программ с правами Администратора

Сообщение ivanbashlakov »

У меня та же проблема возникла после обновления до KDE 4.5.1,притом я использую sudo

Код: Выделить всё

tag@stone:~$ sudo kate
No protocol specified
kate: cannot connect to X server :0


изменение etc/sudoers не помогло,как и поиск в google
problem in windows-reboot
problem in linux-be root
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Решено: Запуск программ с правами Администратора

Сообщение SLEDopit »

используйте sux вместо su.
или вот обсуждался не так давно этот вопрос.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
ivanbashlakov
Сообщения: 427
ОС: Arch

Re: Решено: Запуск программ с правами Администратора

Сообщение ivanbashlakov »

Код: Выделить всё

stone:/home/tag# sux kate
xauth:  creating new authority file /root/.Xauthority
Неизвестный id: kate


из-под обычного юзера тот же результат
прочитал man sux ничего не понял))
problem in windows-reboot
problem in linux-be root
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Решено: Запуск программ с правами Администратора

Сообщение Rootlexx »

ivanbashlakov

Код: Выделить всё

/usr/lib/kde4/libexec/kdesu программа

Подробности в man kdesu.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Решено: Запуск программ с правами Администратора

Сообщение SLEDopit »

ivanbashlakov писал(а):
16.09.2010 21:53
из-под обычного юзера тот же результат
прочитал man sux ничего не понял))
вместо su используйте sux.
т.е. вместо:

Код: Выделить всё

$ su -
# kate
нужно

Код: Выделить всё

$ sux -
# kate
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
ivanbashlakov
Сообщения: 427
ОС: Arch

Re: Решено: Запуск программ с правами Администратора

Сообщение ivanbashlakov »

спасибо,а нет других вариантов?
просто в таком случае приложения открывают с использованием стандартных тем oxygen и без тех настроек,которые я произвел ранее.
раньше с использованием sudo все выглядело одиноково и было хорошо
problem in windows-reboot
problem in linux-be root
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Решено: Запуск программ с правами Администратора

Сообщение NickLion »

Ну, kdesu (как и su) запускают приложение от имени root. Поэтому настройки тоже этого пользователя. Можете настроить kdesu systemsettings - так же как и своего пользователя.

Можно настроиьт запуск через sudo - отредактировать sudoers - из-под root:

Код: Выделить всё

chmod +w /etc/sudoers; vim /etc/sudoers; chmod -w /etc/sudoers

и там поправить:
Defaults always_set_home
на
Defaults !always_set_home
и в Defaults env_keep
добавить DISPLAY
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Решено: Запуск программ с правами Администратора

Сообщение DaemonTux »

NickLion писал(а):
17.09.2010 10:01

Код: Выделить всё

chmod +w /etc/sudoers; vim /etc/sudoers; chmod -w /etc/sudoers

Ну вообще для редактирования /etc/sudoers лучше юзать visudo.
Особенно в бубунте. Так как visudo проверяет синтаксис при сохранении правил.
В вашем же случаи при косяке в правилах sudo откажется работать.
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Решено: Запуск программ с правами Администратора

Сообщение SLEDopit »

NickLion писал(а):
17.09.2010 10:01
Можете настроить kdesu systemsettings - так же как и своего пользователя.
а модно просто скопировать настройки из домашней директории в рутовую. во только изменения отображаться не будут в настройках одновременно в двух местах.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Решено: Запуск программ с правами Администратора

Сообщение NickLion »

DaemonTux, спасибо, я просто даже не знал о такой программе :(
Спасибо сказали:
Аватара пользователя
ivanbashlakov
Сообщения: 427
ОС: Arch

Re: Решено: Запуск программ с правами Администратора

Сообщение ivanbashlakov »

После ребута возникла вот такая трабла:

Код: Выделить всё

tag@stone:~$ sux
Пароль:
stone:/home/tag# kate /etc/apt/sources.list
kate(5690): Session bus not found

KCrash: Application 'kate' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/root/.kde/socket-stone/kdeinit4__0
Warning: connect() failed: : Нет такого файла или каталога
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi directly
drkonqi(5691): Session bus not found


/etc/sudoers у меня имеет следующий вид:

Код: Выделить всё

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
tag ALL=(ALL) ALL


Объясните,что нужно в нем изменить,опций,о которых говорилось выше,я не нахожу.
problem in windows-reboot
problem in linux-be root
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Решено: Запуск программ с правами Администратора

Сообщение NickLion »

Если без комментариев, то у меня работает при:

Код: Выделить всё

Defaults !always_set_home
Defaults env_reset
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE DISPLAY"
Defaults targetpw   # ask for the password of the target user i.e. root
ALL     ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!
root    ALL=(ALL) ALL
Спасибо сказали:
Аватара пользователя
ivanbashlakov
Сообщения: 427
ОС: Arch

Re: Решено: Запуск программ с правами Администратора

Сообщение ivanbashlakov »

NickLion писал(а):
18.09.2010 13:05
Если без комментариев, то у меня работает при:

Код: Выделить всё

Defaults !always_set_home
Defaults env_reset
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE DISPLAY"
Defaults targetpw   # ask for the password of the target user i.e. root
ALL     ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!
root    ALL=(ALL) ALL

Привет свой /etc/sudoers к виду,как и у вас,теперь вот такой мессадж:

Код: Выделить всё

Invalid MIT-MAGIC-COOKIE-1 keykate: cannot connect to X server :0
problem in windows-reboot
problem in linux-be root
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Запуск программ с правами Администратора

Сообщение sash-kan »

ivanbashlakov
1. пользователь, от имени которого вы выполняли команду, тончо владеет x-сессией?
2. вы точно не использовали параметр -u <какой-то другой пользователь> при вызове sudo?
3. от имени того же пользователя, от которого пытаетесь выполнить sudo <команда>, выполните:
$ xauth list $DISPLAY
$ sudo sh -c 'xauth list $DISPLAY'
и сравните вывод этих команд.

NickLion
а в чём глубинный смысл указывать targetpw?
NickLion писал(а):
18.09.2010 13:05
Defaults targetpw # ask for the password of the target user i.e. root
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
ivanbashlakov
Сообщения: 427
ОС: Arch

Re: Решено: Запуск программ с правами Администратора

Сообщение ivanbashlakov »

1.Да,у меня всего два пользователя в системе,второй это root
2.Нет
3.

Код: Выделить всё

tag@stone:~$ xauth list $DISPLAY
stone/unix:0  MIT-MAGIC-COOKIE-1  63b12075d4ab1d8c95f2a3c9eab30865


Код: Выделить всё

tag@stone:~$ sudo sh -c 'xauth list $DISPLAY'
[sudo] password for root:
stone/unix:0  MIT-MAGIC-COOKIE-1  e22c392ef311fc33ee1a50f5f17b01f6

problem in windows-reboot
problem in linux-be root
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Запуск программ с правами Администратора

Сообщение sash-kan »

ivanbashlakov писал(а):
13.10.2010 21:12
1.Да,у меня всего два пользователя в системе,второй это root
я немножко о другом спрашивал — запущена ли x-сессия этим пользователем. может, вы, не логинясь в графике, из виртуального терминала (в просторечии — консоль) пытаетесь x-клиентов запускать. мало ли…


как видим, cookie разные. это говорит о том, что берутся они из разных файлов xauthority.
ищутся они в следующей последовательности (man xauth):
содержимое $XAUTHORITY
файл .Xauthority в домашнем каталоге

я бы предложил для начала закомментировать все три строки, изгаляющиеся над переменными окружения:
Defaults !always_set_home
Defaults env_reset
Defaults env_keep = "…
и посмотреть, передаётся ли переменная $HOME:
$ sudo sh -c 'echo $HOME'
если выдаст домашний каталог вашего пользователя (а не root-а), тогда, по идее, и cookie должны быть идентичными (так как будут браться из одного и того же файла). проверьте уже приведёнными выше командами.
а если cookie совпадут, должны и x-клиенты запуститься. например:
$ sudo xeyes

идею поняли?

p.s. если $HOME не передастся, выложите, пожалуйста, секцию Environment variables to preserve из вывода команды:
$ sudo sh -c 'sudo -V'
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
ivanbashlakov
Сообщения: 427
ОС: Arch

Re: Решено: Запуск программ с правами Администратора

Сообщение ivanbashlakov »

Да,х-сессия запущена этим пользователем.
К сожалению,не могу показать содержимое .Xauthority,не распознается кодировка.
Скачать его можно по ссылке:Xauthority


Код: Выделить всё

tag@stone:~$ sudo sh -c 'echo $HOME'
/root

Передается в рутовый каталог,как видите.


Код: Выделить всё

Environment variables to preserve:
        XAUTHORIZATION
        XAUTHORITY
        TZ
        PS2
        PS1
        PATH
        LS_COLORS
        KRB5CCNAME
        HOSTNAME
        DISPLAY
        COLORS
problem in windows-reboot
problem in linux-be root
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Запуск программ с правами Администратора

Сообщение sash-kan »

ivanbashlakov писал(а):
15.10.2010 17:59
К сожалению,не могу показать содержимое .Xauthority
нам-то оно зачем? там история сгенерированных для вашего пользователя x-cookies-ов. при старте каждой x-сессии генерируется новая «печенька». можете, если интересно, посмотреть полный список:
$ xauth list
а в самом файле cookies-ы записаны в бинарном виде.

ivanbashlakov писал(а):
15.10.2010 17:59
Environment variables to preserve

XAUTHORITY
HOME среди них нет. т.е., по умолчанию, в HOME будет находиться домашний каталог целевого пользователя, а не пользователя, выполнившего команду sudo.
значит, достаточно было в env_keep добавить HOME.
но можно поступить гораздо элегантнее: XAUTHORITY ведь по умолчанию сохраняется.
этим можно и воспользоваться.
добавьте в .bashrc пользователя, от имени которого запущена x-сессия:
export XAUTHORITY=~/.Xauthority
теперь cookies должны совпасть. если нет, убедитесь, что sudo сохранил переменную XAUTHORITY в нужном виде:
$ sudo sh -c 'echo $XAUTHORITY'
должно выдать:
/home/<логин владельца x-сессии>/.Xauthority
если так, то и cookies-ы должны совпасть. а, следовательно, и x-клиентов можно будет запускать через sudo — они смогут связаться с x-сервером (он их удачно аутентифицирует) и «нарисоваться».
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Решено: Запуск программ с правами Администратора

Сообщение NickLion »

sash-kan писал(а):
13.10.2010 20:49
NickLion
а в чём глубинный смысл указывать targetpw?
NickLion писал(а):
18.09.2010 13:05
Defaults targetpw # ask for the password of the target user i.e. root


Не задумывался. Это было в исходном файле.

sash-kan писал(а):
15.10.2010 20:44
HOME среди них нет. т.е., по умолчанию, в HOME будет находиться домашний каталог целевого пользователя, а не пользователя, выполнившего команду sudo.
значит, достаточно было в env_keep добавить HOME.

А параметр
Defaults !always_set_home
?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Запуск программ с правами Администратора

Сообщение sash-kan »

NickLion писал(а):
15.10.2010 21:14
А параметр
Defaults !always_set_home
?
а что с этой строчкой не так?
нет, понятна её… гхм… малоосмысленность — незачем отрицать и так не устанавливаемый по умолчанию параметр.
но что вас смущает в контексте этой темы?

NickLion писал(а):
15.10.2010 21:14
Не задумывался
ну, как бы можно и задуматься, нужно ли такое поведение:
NickLion писал(а):
15.10.2010 21:14
ask for the password of the target user i.e. root

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Решено: Запуск программ с правами Администратора

Сообщение NickLion »

sash-kan писал(а):
15.10.2010 23:21
но что вас смущает в контексте этой темы?

Ну, у меня эта опция по умолчанию в sudoers включена. Её либо закоментить надо, либо установить !. И при этом сохраняется $HOME вызывающего пользователя.

sash-kan писал(а):
15.10.2010 23:21
NickLion писал(а):
15.10.2010 21:14
Не задумывался
ну, как бы можно и задуматься, нужно ли такое поведение:
NickLion писал(а):
15.10.2010 21:14
ask for the password of the target user i.e. root


Ну, будет запрашивать пароль того пользователя, которого хотим активировать. Разве не логично? А то вводить свой пароль, чтобы активировать рута - как-то меганелогично.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Запуск программ с правами Администратора

Сообщение sash-kan »

NickLion писал(а):
16.10.2010 11:17
И при этом сохраняется $HOME вызывающего пользователя.
да, если перечислена в дефолтном (man sudoers: The default contents of the env_keep and env_check lists are displayed when sudo is run by root with the -V option) или в переопределённом списке env_keep. у ivanbashlakov HOME не перечислена ни там, ни там.

NickLion писал(а):
16.10.2010 11:17
Ну, будет запрашивать пароль того пользователя, которого хотим активировать. Разве не логично? А то вводить свой пароль, чтобы активировать рута - как-то меганелогично.
видимо, вы как-то не очень понимаете главную «фишку» sudo: выполнение строго заданного списка команд (ещё и со строго заданными параметрами при необходимости) от имени другого пользователя (чаще всего root-а), естественно, без знания пароля этого пользователя, чтобы нельзя было выполнить «всё что угодно».
если знаете пароль целевого пользователя, то эта главная «фишка» теряет всякий смысл. да, для полноты картины есть опция targetpw, но при её употреблении sudo становится фактически излишней сущностью.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
ivanbashlakov
Сообщения: 427
ОС: Arch

Re: Решено: Запуск программ с правами Администратора

Сообщение ivanbashlakov »

sash-kan писал(а):
15.10.2010 20:44
HOME среди них нет. т.е., по умолчанию, в HOME будет находиться домашний каталог целевого пользователя, а не пользователя, выполнившего команду sudo.
значит, достаточно было в env_keep добавить HOME.
но можно поступить гораздо элегантнее: XAUTHORITY ведь по умолчанию сохраняется.
этим можно и воспользоваться.
добавьте в .bashrc пользователя, от имени которого запущена x-сессия:
export XAUTHORITY=~/.Xauthority
теперь cookies должны совпасть. если нет, убедитесь, что sudo сохранил переменную XAUTHORITY в нужном виде:
$ sudo sh -c 'echo $XAUTHORITY'
должно выдать:
/home/<логин владельца x-сессии>/.Xauthority
если так, то и cookies-ы должны совпасть. а, следовательно, и x-клиентов можно будет запускать через sudo — они смогут связаться с x-сервером (он их удачно аутентифицирует) и «нарисоваться».


Спасибо,заработало.
problem in windows-reboot
problem in linux-be root
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Решено: Запуск программ с правами Администратора

Сообщение NickLion »

sash-kan писал(а):
18.10.2010 17:21
видимо, вы как-то не очень понимаете главную «фишку» sudo

Да, видимо так. Всегда пользовался su -c. И не задумывался об особенностях sudo.
Спасибо сказали: