在GUI应用程序上使用sudo


10

例如,当我使用kubuntu时,我总是可以使用sudo打开X应用程序sudo kate。现在,我已切换到无效的拱门。我知道我一直被告知要使用kdesu,但是kubuntu中有什么设置可以让我在X应用程序上使用sudo来阻止我在arch上使用它?

编辑
对不起,我自己做了我讨厌的事> _ <

这就是我想要做的:

[falmarri @ falmarri-z-arch下载] $ sudo kate
密码: 
未指定协议
凯特:无法连接到X服务器:0.0

请注意,这只是使用konsole的常规终端会话,我没有使用SSH

/ etc / sudoers

## sudoers文件。
##
##必须以root用户使用“ visudo”命令编辑此文件。
##不使用'visudo'可能会导致语法或文件权限错误
##阻止sudo运行。
##
##有关如何编写sudoers文件的详细信息,请参见sudoers手册页。
##

##
##主机别名规范
##
##组机器。这些名称可能包括主机名(可选带通配符),
## IP地址,网络号或网络组。
#Host_Alias WEBSERVERS = www1,www2,www3

##
##用户别名规范
##
##用户组。这些内容可能包括用户名,uid,Unix组,
##或netgroups。
#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”                                                                     
##                                                                                                                                   
##通过sudo运行X应用程序;HOME用于查找                                                                         
## .Xauthority文件。请注意,其他程序使用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 =(全部)全部

##取消注释以允许组轮成员执行任何命令
%wheel ALL =(全部)全部

##一样,没有密码
#%wheel ALL =(全部)NOPASSWD:全部

##取消注释以允许组sudo的成员执行任何命令
#%sudo ALL =(全部)全部

##取消注释以允许任何用户在知道密码的情况下运行sudo
他们以#身份运行命令的用户(默认情况下为root)。
#默认为targetpw#询问目标用户的密码
#ALL ALL =(ALL)ALL#警告:仅与“ Defaults targetpw”一起使用

##从/etc/sudoers.d读取嵌入式文件
##(此处的“#”不表示评论)
#includedir /etc/sudoers.d


定义“无效”。你得到什么错误?您设置sudo正确吗?您可以使用启动非GUI应用程序sudo吗?
sepp2k 2010年

ps。您也可以尝试一个名为sux“ su with X” 的应用程序
xenoterracide 2010年

Answers:


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"

我读了/ etc / sudoers文件,它确实提到了这是一个功能。我没有评论它告诉我的台词,但仍然无法正常工作。我在问题中张贴了/ etc / sudoers文件。
Falmarri 2010年

我在回答中添加了Fedora设置。我认为您仍然会在发布的文件中错过DISPLAY和XAUTHORITY。
fschmitt

实际上,它现在似乎可以正常工作。我不确定是否只是忘记保存之类的东西。谢谢=]
Falmarri 2010年

9

图形程序不应与sudo一起运行。正确的方法是kdesudo在KDE中以根用户或gksuGNOME中的身份运行GUI程序。

以root身份运行图形程序可能会导致严重的问题,这就是提供包装程序的原因。阅读此Arch邮件列表线程,以解决严重的问题,您可能会尝试sudo启动GUI应用程序。


我很困惑那个线程在说什么。仅以root身份运行X时是否只是一个问题?我从X会话运行sudo从来没有遇到问题
Falmarri 2010年

3
使用sudo以root身份运行GUI应用程序可能会将文件更改为root拥有。这可能是一个特别讨厌的文件~/.ICEauthority。这可以防止您登录。Google“ ICEauthority”,您会看到结果满是无法登录系统的用户,因为该文件归root所有。我只是在用户的操作系统Arch上选择了一个。
andrewsomething
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.