GUI 애플리케이션에서 sudo 사용


10

kubuntu를 사용할 때 sudo kate예를 들어 항상 sudo로 X 응용 프로그램을 열 수있었습니다 . 이제 작동하지 않는 아치로 전환했습니다. 나는 항상 kdesu를 사용하라는 말을 들었지 만 kubuntu에는 아치에서 수행 할 수없는 X 응용 프로그램에서 sudo를 사용할 수있는 설정은 무엇입니까?

편집 :
미안, 내가 너무 싫어하는 일을> _ <

이것이 내가하려고하는 일입니다.

[falmarri @ falmarri-z-arch 다운로드] $ sudo kate
암호: 
프로토콜이 지정되지 않았습니다
kate : X 서버에 연결할 수 없습니다 : 0.0

이것은 konsole을 사용하는 일반적인 터미널 세션입니다 .SSH를 사용하지 않습니다.

/ etc / sudoers :

## sudoers 파일.
##
##이 파일은 'visudo'명령을 루트로 사용하여 편집해야합니다.
## 'visudo'를 사용하지 않으면 구문 또는 파일 권한 오류가 발생할 수 있습니다
sudo가 실행되지 못하게하는 ##.
##
sudoers 파일을 작성하는 방법에 대한 자세한 내용은 sudoers 매뉴얼 페이지를 참조하십시오.
##

##
## 호스트 별명 지정
##
## 기계 그룹. 여기에는 호스트 이름 (와일드 카드 포함)이 포함될 수 있습니다.
## IP 주소, 네트워크 번호 또는 넷 그룹.
# Host_Alias ​​WEBSERVERS = www1, www2, www3

##
## 사용자 별명 사양
##
## 사용자 그룹. 이들은 사용자 이름, uid, Unix 그룹,
## 또는 넷 그룹.
# User_Alias ​​ADMINS = millert, dowdy, mikef

##
## Cmnd 별칭 사양
##
## 명령 그룹. 종종 관련 명령을 그룹화하는 데 사용됩니다.                                                               
# Cmnd_Alias ​​프로세스 = / usr / bin / nice, / bin / kill, / usr / bin / renice, \                                                             
# / usr / bin / pkill, / usr / bin / top                                                                             

##                                                                                                                                   
## 기본 사양                                                                                                            
##                                                                                                                                   
## 다음 환경 변수 중 일부를 유지하고 싶을 수도 있습니다.                                                                  
sudo를 통해 명령을 실행할 때 ##                                                                                                   
##                                                                                                                                   
## 로캘 설정                                                                                                                   
# 기본값 env_keep + = "언어 언어 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

##
## 사용자 권한 사양
##
루트 ALL = (ALL) ALL

## 그룹 휠 멤버가 명령을 실행할 수 있도록 주석 해제
% wheel ALL = (ALL) ALL

## 비밀번호없는 것
# % wheel ALL = (ALL) NOPASSWD : ALL

## 그룹 sudo 구성원이 명령을 실행할 수 있도록 주석 해제
# % sudo ALL = (ALL) ALL

## 암호를 알고있는 사용자가 sudo를 실행할 수 있도록 주석 해제
명령을 실행중인 사용자 ## (기본적으로 root).
# 기본값 targetpw # 대상 사용자의 비밀번호 요청
# ALL ALL = (ALL) ALL # 경고 : 'Defaults targetpw'와 함께 만 사용하십시오.

## /etc/sudoers.d에서 드롭 인 파일을 읽습니다.
## (여기서 '#'는 주석을 나타내지 않습니다)
#includedir /etc/sudoers.d


"작동하지 않습니다"를 정의하십시오. 어떤 오류가 발생합니까? sudo제대로 설정 했습니까 ? sudo?를 사용하여 비 GUI 앱을 시작할 수 있습니까 ?
sepp2k

추신. 당신은 또한라는 응용 프로그램을 시도 할 수 sux기본적으로 "X와 SU"입니다
xenoterracide

답변:


6

이것은 아치 리눅스에서 의도적 인 구성처럼 보입니다. 솔루션에 대한 링크가있는 토론 은이 내용을 참조하십시오 .

가장 좋은 팁은의 "env_keep"기본값에 "DISPLAY XAUTHORITY"를 추가하는 것 같습니다 /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

Fedora 설정을 답변에 추가했습니다. 게시 된 파일에서 여전히 DISPLAY 및 XAUTHORITY가 누락되었습니다.
fschmitt

실제로 그것은 지금 작동하는 것 같습니다. 저장하거나 무언가를 잊어 버렸는지 확실하지 않습니다. 감사합니다 =]
Falmarri

9

sudo로 그래픽 프로그램을 실행해서는 안됩니다. 올바른 방법은 kdesudoKDE에서 GUI 프로그램을 루트 또는 gksu그놈 으로 실행하는 데 사용하는 것 입니다 .

루트로 그래픽 프로그램을 실행하면 심각한 문제가 발생할 수 있으므로 랩퍼가 제공됩니다. 이 아치 메일 링리스트 스레드 를 읽고 sudoGUI 앱을 시작 하려고 할 때 발생할 수있는 심각한 문제가 있습니다 .


그 스레드가 말한 것을 혼란스럽게 생각합니다. X를 루트로 실행할 때만 문제가됩니까? X 세션에서 sudo를 실행하는 데 문제가 없었습니다
Falmarri

3
sudo를 사용하여 GUI 응용 프로그램을 루트로 실행하면 루트가 소유 한 파일을 잠재적으로 변경할 수 있습니다. 이 일이 발생할 수있는 특히 더러운 파일은 ~/.ICEauthority입니다. 이렇게하면 로그인하지 못할 수 있습니다. Google "ICEauthority"는 파일이 루트에 의해 소유되어 시스템에 로그인 할 수없는 사용자로 결과가 가득하다는 것을 알 수 있습니다. 방금 사용자 OS 인 Arch에있는 것을 골랐습니다.
andrewsomething
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.