在 GUI 应用程序上使用 sudo

Fal*_*rri 10 kde arch-linux sudo

例如,当我使用 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 组、
## 或网络组。
# 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 回放记录的会话。
# 默认日志输出
# 默认值!/usr/bin/sudoreplay !log_output
# 默认值!/usr/local/bin/sudoreplay !log_output
# 默认值!/sbin/reboot !log_output

##
## Runas 别名规范
##


默认值:falmarri timestamp_timeout=10

##
## 用户权限规范
##
根 ALL=(ALL) ALL

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

##同样的事情没有密码
# %wheel ALL=(ALL) NOPASSWD: ALL

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

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

## 从 /etc/sudoers.d 读取插入文件
##(此处的“#”不表示注释)
#includedir /etc/sudoers.d

and*_*ing 9

不应使用 sudo 运行图形程序。正确的方法是kdesudo在 KDE 中使用以 root 身份运行 GUI 程序,或者gksu在 GNOME 中使用。

以 root 身份运行图形程序有可能导致严重的问题,这就是提供包装器的原因。阅读这个 Arch 邮件列表线程,了解一个严重的问题,你可能会遇到试图欺骗sudo启动 GUI 应用程序的问题。

  • 使用 sudo 以 root 身份运行 GUI 应用程序可能会将文件更改为由 root 拥有。一个可能发生这种情况的特别讨厌的文件是`~/.ICEauthority`。这可能会阻止您登录。谷歌“ICEauthority”,您会看到结果中充满了无法登录到他们系统的人,因为该文件已归根用户所有。我只是选择了那个,因为它在用户的操作系统 Arch 上。 (4认同)

fsc*_*itt 6

这看起来像是 Arch Linux 中的一个有意配置。有关解决方案链接的讨论,请参阅此内容。

最好的提示似乎是将“DISPLAY XAUTHORITY”添加到 .env 中的“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"
Run Code Online (Sandbox Code Playgroud)