использование sudo в приложениях с графическим интерфейсом

10

Когда я использовал kubuntu, я всегда мог открыть приложения X с помощью sudo, sudo kateнапример. Теперь, когда я переключился на арку, которая не работает. Я знаю, что мне всегда говорили использовать kdesu, но какие настройки есть в kubuntu, которые позволяют мне использовать sudo в приложениях X, что мешает мне делать это в arch?

Изменить :
Извините, я сделал то, что я так ненавижу> _ <

Вот что я пытаюсь сделать:

[falmarri @ falmarri-z-arch Downloads] $ sudo kate
Пароль: 
Протокол не указан
Кейт: не может подключиться к X-серверу: 0.0

Обратите внимание, что это обычный сеанс терминала с использованием konsole, я не использую SSH

/ etc / sudoers :

## файл sudoers.
##
## Этот файл ДОЛЖЕН быть отредактирован командой 'visudo' от имени root.
## Отказ от использования 'visudo' может привести к ошибкам синтаксиса или разрешению файла
## которые мешают запуску sudo.
##
## См. Страницу руководства sudoers для получения подробной информации о том, как написать файл sudoers.
##

##
## Спецификация псевдонима хоста
##
## Группы машин. Они могут включать имена хостов (необязательно с подстановочными знаками),
## IP-адреса, номера сетей или сетевых групп.
# Host_Alias ​​WEBSERVERS = www1, www2, www3

##
## Спецификация псевдонима пользователя
##
## Группы пользователей. Они могут состоять из имен пользователей, идентификаторов пользователей, групп Unix,
## или сетевые группы.
# User_Alias ​​ADMINS = millert, dowdy, mikef

##
## Спецификация псевдонима Cmnd
##
## Группы команд. Часто используется для группировки связанных команд.                                                               
# Cmnd_Alias ​​PROCESSES = / usr / bin / nice, / bin / kill, / usr / bin / renice, \                                                             
# / usr / bin / pkill, / usr / bin / top                                                                             

##                                                                                                                                   
## Спецификация по умолчанию                                                                                                            
##                                                                                                                                   
## Вы можете оставить некоторые из следующих переменных окружения                                                                  
## при запуске команд через sudo.                                                                                                   
##                                                                                                                                   
## Настройки локали                                                                                                                   
# По умолчанию env_keep + = "LANG LANGUAGE LINGUAS LC_ * _XKB_CHARSET"                                                                     
##                                                                                                                                   
## Запускать приложения X через sudo; HOME используется для поиска                                                                         
## .Xauthority file. Обратите внимание, что другие программы используют HOME, чтобы найти                                                                      
## конфигурационные файлы, и это может привести к повышению привилегий!                                                                    
 По умолчанию env_keep + = "HOME"                                                                                                         
##                                                                                                                                   
## Настройки пути к ресурсам X11                                                                                                        
 По умолчанию env_keep + = "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"                                                              
##                                                                                                                                   
## Настройки рабочего стола                                                                                                             
 По умолчанию env_keep + = "QTDIR KDEDIR"                                                                                                 
##                                                                                                                                   
## Разрешить командам sudo-run наследовать сеанс ConsoleKit вызывающих
# По умолчанию env_keep + = "XDG_SESSION_COOKIE"
##
## Раскомментируйте, чтобы включить специальные методы ввода. Забота должна быть принята как
## это может позволить пользователям нарушить выполнение команды через sudo.
 По умолчанию env_keep + = "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Раскомментируйте, чтобы включить ведение журнала вывода команды, кроме
## sudoreplay и перезагрузите компьютер. Используйте sudoreplay для воспроизведения записанных сеансов.
# По умолчанию log_output
# По умолчанию! / Usr / bin / sudoreplay! Log_output
# По умолчанию! / Usr / local / bin / sudoreplay! Log_output
# По умолчанию! / Sbin / reboot! Log_output

##
## Runas спецификация псевдонимов
##


Значения по умолчанию: falmarri timestamp_timeout = 10

##
## Спецификация привилегий пользователя
##
root ALL = (ALL) ALL

## Раскомментируйте, чтобы разрешить членам группового колеса выполнять любую команду
% wheel ALL = (ALL) ALL

## То же самое без пароля
#% wheel ALL = (ALL) NOPASSWD: ALL

## Раскомментируйте, чтобы разрешить членам группы sudo выполнять любую команду
#% sudo ALL = (ALL) ALL

## Раскомментируйте, чтобы позволить любому пользователю запускать sudo, если он знает пароль
## пользователя, от имени которого они запускают команду (по умолчанию root).
# По умолчанию targetpw # Запросить пароль у целевого пользователя
# ALL ALL = (ALL) ALL # WARNING: используйте только вместе с 'Defaults targetpw'

## Чтение вставных файлов из /etc/sudoers.d
## (здесь # не означает комментарий)
#includedir /etc/sudoers.d

Falmarri
источник
Определить "не работает". Какая у вас ошибка? Вы sudoправильно настроили ? Можете ли вы начать использовать приложения без графического интерфейса sudo?
2010 г.
пс. Вы также можете попробовать приложение под названием sux"su with X"
xenoterracide

Ответы:

6

Это похоже на преднамеренную конфигурацию в Arch Linux. Смотрите это для обсуждения со ссылками на решения.

Кажется, лучший совет - добавить «DISPLAY XAUTHORITY» к значениям по умолчанию для «env_keep» /etc/sudoers.

В Fedora есть /etc/sudoersследующее, и это позволяет sudo somexapp добиться успеха.

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
fschmitt
источник
Я прочитал файл / etc / sudoers, и он упомянул тот факт, что это была особенность. Я раскомментировал строки, которые он мне сказал, но он все еще не работает. Я разместил свой файл / etc / sudoers в своем вопросе.
Фалмарри
Я добавил настройки Fedora в свой ответ. Я думаю, что вы все еще пропускаете DISPLAY и XAUTHORITY в своем опубликованном файле.
fschmitt
На самом деле это похоже на работу сейчас. Я не уверен, что я просто забыл сохранить или что-то в этом роде. Спасибо =]
Фалмарри
9

Графические программы не должны запускаться с помощью sudo. Правильный способ - использовать kdesudoв KDE для запуска программ с графическим интерфейсом от имени пользователя root или gksuв GNOME.

Запуск графических программ от имени root может привести к серьезным проблемам, поэтому предоставляются обертки. Прочтите эту ветку списка рассылки Arch для серьезной проблемы, с которой вы можете столкнуться при попытке sudoзапустить приложение с графическим интерфейсом.

andrewsomething
источник
Я запутался, что говорила эта нить. Это проблема только при запуске X от имени root? У меня никогда не было проблем с запуском sudo из X-сессии
Falmarri 13.10.10
3
Запуск приложений с графическим интерфейсом от имени root с помощью sudo потенциально может изменить файлы, принадлежащие пользователю root. Это может быть очень неприятный файл ~/.ICEauthority. Это может помешать вам войти в систему. Google "ICEauthority", и вы увидите, что результаты полны людей, которые не могут войти в свои системы, потому что файл стал владельцем root. Я просто выбрал его, как он есть на Arch, ОС пользователя.
Andrewsomething