sudo vs gksudo. 차?


37

차이 무엇 sudo과 gksudo?


1
좋은 질문. 나는 지금 Linux를 배우고있다 (아직 키보드 레이아웃을 찾지 못했다는 것을 알 수있다) Haha!
— r0ca

답변:


27

sudo명령 행에 비밀번호를 묻고 gksudo대화 상자가 나타납니다.


6
gksu (do)는 또한 su (do)와는 별도로 자식에 전달할 환경 변수에 대한 자체 구성을 가지고 있습니다. 예를 들어 sudoers 구성에! keep_env를 지정하면 $ DISPLAY가 없으면 그래픽 응용 프로그램이 실행되지 않을 수 있지만 gksudo는 작동합니다. git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/… 또는 live.gnome.org/gksu 에서 자세한 내용을 확인할 수 있습니다 .
— ephemient

@ephemient 그래픽 프롬프트 외에 ? sudo -E와 동일합니다 gksudo.
— isomorphismes

3
아래의 답변은 훨씬 우수한 superuser.com/a/726249/112542로
— johny 왜

4
나는 이것이 중요한 차이 가 아니라는 점을 강조하고 싶다. 이 답변은 초보자들에게는 오해의 소지가있다. 주요 차이점은 여기에 설명되어 있습니다 : askubuntu.com/a/11766/81034 및 아래의 답변 (@johnywhy에 연결된)은 그 이상의 미묘한 차이를 더합니다. 이 오도 된 대답에 의존하기보다는 askubuntu 질문을 읽으십시오.
— sundar-복원 모니카

31

gksudo의 GTK 기반 프론트 엔드 sudo(BTW, kdesudo인 Qt를 기반 프론트 엔드가), 그러나 그것은 (기본적으로) 핸들 더 환경 변수 ( HOME, XAUTHORITY이상 등)에 sudo따라서 루트 안전한로 실행 명령을.


내가 볼 수있는 한 @Logics 답변 만 충분히 정확합니다 (@Ignacio Vazquez-Abrams는 완전하지 않습니다). 다음은 @Davros @knitti 답변 / 설명에 대한 회피 시도 설명입니다 (필요하지 않은 경우 제거 / 편집하십시오).

  1. 두 명령이 모두를 나타내지 sudo만 사용 된 UI가 두 명령의 유일한 차이점은 아닙니다.
  2. GUI 프로그램을 실행하는 것이 gk / kdesudo를 사용해야하는 유일한 상황은 아니며, 대신 명령이 파일을 홈 디렉토리에 만들거나 쓸지 여부 ( HOME환경 변수가 sudo일부 시스템 및 상황에서 명령). 모든 GUI 응용 프로그램이 홈 디렉토리에 기록되는 것은 아니며 모든 CLI 응용 프로그램이 그렇지 는 않으므로 명령 유형이 핵심이 아닙니다.
  3. 당신은 여전히 수 있습니다 사용하는 sudo루트 (예를 들어 애플 리케이션 '콘솔 출력을 볼 수) 출시 GUI 응용 프로그램에 명령을, 그러나 당신은 처리 할 필요가 HOME(와 같은 다른 사람 XAUTHORITY, DISPLAY등, 입력 방법 관련-물건) 환경 변수를 올바르게 그래서 시작된 앱이 실패하지 않거나, 기능을 잃거나, 정말 나쁜 일을합니다. 다음은 현재 사용중인 권장 사항입니다.sudo
    • sudo -H <rest of the command>
      • (에서 sudo제 8 매뉴얼 페이지)에 -H ( HOME )보안 정책을 설정하는 것이 옵션 요청 HOME암호 데이터베이스에 지정된대로 (기본적으로 루트) 대상 사용자의 홈 디렉토리에 환경 변수를. 정책에 따라 이것이 기본 동작 일 수 있습니다.
      • 이것은 적어도 sudo발신자의 홈 디렉토리 에 파일이 생성되는 것을 방지해야합니다
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • <GUI 프로그램>이 TTY 터미널에서 실행되고 데스크탑 환경에 표시되도록합니다.
  4. 이 sudo명령 의 동작은 모든 시스템에서 동일하지 않으며 명령을 통해 구성 할 수 있습니다 . 자세한 내용은 맨 페이지 visudo를 확인하십시오 sudoers(5).

2
모든 표를 얻는 것보다 훨씬 더 나은 설명 인 것 같습니다. 더 철저하고 정확합니다. OP조차도 "그게 다야?" 모든 표를 얻은 답변에.
— johny 왜

2

일반적인 sudo를 사용하여 그래픽 프로그램을 실행하는 경우는 드물지만 일부 파일에 대한 권한이 엉망이됩니다. 안전한 gksudo (또는 적절한 kdesudo)를 위해서는 GUI로 프로그램을 실행해야합니다. gksudo가 X 서버 변수를 이해하고 sudo가 문제를 일으키지 않는다는 설명을 들었지만 이것이 실제로 버그라고 생각합니다. 팁처럼; 루트로 그래픽 프로그램을 실행하는 경우, 실행하려는 각 프로그램에 대해 하나의 터미널을 여는 대신 ALT-F2 (동시에 Alt 및 기능 키 2)를 입력 한 다음 "gksudo"팝업 대화 상자를 입력하십시오 따옴표와 프로그램없이 실행하려는 응용 프로그램으로 바꿉니다.


2

sudo는 상승 된 권한을 가진 현재 사용자로 실행됩니다. 그래픽 응용 프로그램을 실행할 때 특정 사용자 구성 파일 (그래픽 환경 관련)의 파일 권한이 변경 될 수 있습니다. sudo없이 이러한 앱을 다시 실행할 때 오류가 발생할 수 있습니다.

gksudo (KDE의 kdesudo)는 앱을 루트 사용자로 실행하므로, 터치 한 모든 파일 권한은 사용자 파일이 아닌 루트 파일에 있습니다. gksudo / kdesudo없이 이러한 앱을 다시 실행하면 항상 예상 된 동작이 있습니다.


0

현재 답변이 잘못되었습니다. 우분투 RootSudo 위키 에 따르면 :

"일반적인 sudo를 사용하여 그래픽 응용 프로그램을 루트로 시작해서는 안됩니다. gksudo (Kubuntu의 kdesudo)를 사용하여 이러한 프로그램을 실행해야합니다. gksudo는 HOME = ~ root를 설정하고 .Xauthority를 ​​tmp 디렉토리에 복사합니다. 이렇게하면 가정의 파일이 차단됩니다. 루트가 소유하고있는 디렉토리.


2
다른 네 가지 답변이 있습니다. 어느 것이 틀렸습니까? 귀하의 답변이 Davros의 답변과 본질적으로 동일하지 않습니까?
— fixer1234

나는 정답으로 표시된 대답을 언급하고있었습니다. 예, Davros는 같은 말을하지만, 그의 소스에 대한 링크가 없기 때문에 이것을 추가했습니다.
— eugene1832

1
더 나은 해결책은 해당 답변에 대한 수정안을 제안하는 것입니다. 대답을 향상시키는 것은 수용 될 수있는 반면 (+2 회답), 본질적으로 대답을 복제하면 다운 보트를 유치 할 수 있습니다.
— fixer1234
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.