sudo vs gksudo. 차?


37

차이 무엇 sudogksudo?


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.