usando sudo em aplicativos GUI

10

Quando eu estava usando o kubuntu, eu sempre podia abrir aplicativos X com o sudo, sudo katepor exemplo. Agora que mudei para o arco que não funciona. Sei que sempre me disseram para usar o kdesu, mas que configuração existe no kubuntu que me permite usar o sudo nos aplicativos X que me impedem de fazê-lo no arch?

Edit :
Desculpe, eu fiz o que eu odeio tanto> _ <

Isto é o que estou tentando fazer:

[downloads de falmarri @ falmarri-z-arch] $ sudo kate
Senha: 
Nenhum protocolo especificado
kate: não é possível conectar ao servidor X: 0.0

Note que esta é apenas uma sessão regular de terminal usando o konsole, não estou usando SSH

/ etc / sudoers :

## arquivo sudoers.
##
## Este arquivo DEVE ser editado com o comando 'visudo' como root.
## A não utilização do 'visudo' pode resultar em erros de sintaxe ou de permissão de arquivo
## que impedem a execução do sudo.
##
## Veja a página do manual sudoers para obter detalhes sobre como escrever um arquivo sudoers.
##

##
## Especificação de alias do host
##
## Grupos de máquinas. Isso pode incluir nomes de host (opcionalmente com curingas),
## Endereços IP, números de rede ou grupos de rede.
# Host_Alias ​​WEBSERVERS = www1, www2, www3

##
## Especificação do alias do usuário
##
## Grupos de usuários. Estes podem consistir em nomes de usuários, uids, grupos Unix,
## ou grupos de rede.
# User_Alias ​​ADMINS = millert, dowdy, mikef

##
## Especificação de alias do cmnd
##
## Grupos de comandos. Geralmente usado para agrupar comandos relacionados.                                                               
# Cmnd_Alias ​​PROCESSOS = / usr / bin / nice, / bin / kill, / usr / bin / renice, \                                                             
# / usr / bin / pkill, / usr / bin / top                                                                             

##                                                                                                                                   
## Especificação de padrões                                                                                                            
##                                                                                                                                   
## Você pode querer manter algumas das seguintes variáveis ​​de ambiente                                                                  
## ao executar comandos via sudo.                                                                                                   
##                                                                                                                                   
## Configurações de localidade                                                                                                                   
# Padrões env_keep + = "LANGUAGE LANGUAGE LINGUAS LC_ * _XKB_CHARSET"                                                                     
##                                                                                                                                   
## Execute aplicativos X através do sudo; HOME é usado para encontrar o                                                                         
## .Xauthority file. Observe que outros programas usam o HOME para encontrar                                                                      
## arquivos de configuração e isso pode levar à escalação de privilégios!                                                                    
 Padrões env_keep + = "HOME"                                                                                                         
##                                                                                                                                   
## Configurações do caminho do recurso X11                                                                                                        
 Padrões env_keep + = "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"                                                              
##                                                                                                                                   
## Configurações do caminho da área de trabalho                                                                                                             
 Padrões env_keep + = "QTDIR KDEDIR"                                                                                                 
##                                                                                                                                   
## Permitir que os comandos sudo-run herdem a sessão do ConsoleKit dos chamadores
# Padrões env_keep + = "XDG_SESSION_COOKIE"
##
## Descomente para ativar métodos de entrada especiais. Deve-se tomar cuidado como
## isso pode permitir que os usuários subvertam o comando que está sendo executado via sudo.
 Padrões env_keep + = "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Descomente para habilitar o log da saída de um comando, exceto para
## sudoreplay e reinicie. Use sudoreplay para reproduzir sessões registradas.
# Padrões log_output
# Padrões! / Usr / bin / sudoreplay! Log_output
# Padrões! / Usr / local / bin / sudoreplay! Log_output
# Padrões! / Sbin / reboot! Log_output

##
## Especificação de alias de runas
##


Padrões: falmarri timestamp_timeout = 10

##
## Especificação de privilégios do usuário
##
raiz ALL = (ALL) ALL

## Descomentar para permitir que os membros da roda do grupo executem qualquer comando
% roda ALL = (ALL) ALL

## A mesma coisa sem uma senha
#% wheel ALL = (ALL) NOPASSWD: ALL

## Descomente para permitir que membros do grupo sudo executem qualquer comando
#% sudo ALL = (ALL) ALL

## Descomente para permitir que qualquer usuário execute o sudo se souber a senha
## do usuário no qual eles estão executando o comando (root por padrão).
# Padrões targetpw # Solicite a senha do usuário de destino
# ALL ALL = (ALL) ALL # AVISO: use isso somente com 'Padrões targetpw'

## Leia arquivos drop-in em /etc/sudoers.d
## (o '#' aqui não indica um comentário)
#includedir /etc/sudoers.d

Falmarri
fonte
Definir "não funciona". Que erro você recebe? Você configurou sudocorretamente? Você pode iniciar aplicativos que não sejam da GUI sudo?
sepp2k
ps. você também pode tentar um aplicativo chamado suxque é basicamente "su com X"
xenoterracide 10/10

Respostas:

6

Parece uma configuração intencional no Arch Linux. Veja isso para discussão com links para soluções.

A melhor dica parece estar adicionando "DISPLAY XAUTHORITY" aos padrões "env_keep" em /etc/sudoers.

O Fedora possui /etc/sudoerso seguinte e isso permite que o sudo somexapp seja bem-sucedido.

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
fonte
Eu li o arquivo / etc / sudoers e ele mencionou o fato de que esse era um recurso. Eu descomentei as linhas que ele me disse, mas ainda não está funcionando. Postei meu arquivo / etc / sudoers na minha pergunta.
Falmarri 10/10
Eu adicionei as configurações do Fedora à minha resposta. Acho que você ainda sente falta de DISPLAY e XAUTHORITY no seu arquivo postado.
Fschmitt 10/10/10
Na verdade, parece funcionar agora. Não sei se esqueci de salvar ou algo assim. Obrigado =]
Falmarri 10/10
9

Programas gráficos não devem ser executados com o sudo. A maneira correta é usar kdesudono KDE para executar programas da GUI como root ou gksuno GNOME.

A execução de programas gráficos como raiz tem o potencial de causar problemas sérios, é por isso que os wrappers são fornecidos. Leia este tópico da lista de discussão do Arch para um problema sério que você pode encontrar tentando enganar sudoao iniciar um aplicativo GUI.

andrewsomething
fonte
Estou confuso com o que esse tópico estava dizendo. É apenas um problema ao executar o X como root? Eu nunca tive um problema ao executar o sudo a partir de uma sessão do X
Falmarri 13/10/10
3
A execução de aplicativos da GUI como raiz com o sudo pode alterar potencialmente os arquivos pertencentes à raiz. Um arquivo particularmente desagradável que isso pode acontecer é ~/.ICEauthority. Isso pode impedir que você faça o login. Google "ICEauthority" e você verá que os resultados estão cheios de pessoas que não conseguem fazer login em seus sistemas porque o arquivo pertence à raiz. Acabei de escolher esse como é no Arch, o sistema operacional do usuário.
andrewsomething