2 개의 사용자 계정을 정의했습니다.
- (와 관리자 권한을 가진 하나의
sudo
권리) =>를 호출 할 수 있습니다adminuser
. - 권한이없는 두 번째 ==> 호출하면
이 두 번째 사용자에 대해 자동 로그인을 구성 할 수 있습니다 .
normaluser
normaluser
따라서 normaluser
세션을 열고 관리자 권한으로 응용 프로그램을 실행하려면
터미널 Ctrl+ Alt+를 열고 T다음을 수행하십시오.
su adminuser
sudo anyapplication ...
normaluser
세션 을 종료하지 않고도 잘 작동합니다 (세션을 열 필요 없음 adminuser
).
그러나 응용 프로그램을 GUI (Graphic User Interface)로 실행해야하는 경우 어떻게해야합니까?
나는 그것에 대해하지만 :
su adminuser
gksu anyapplication ...
그러나 나는 얻는다
** (gksu:9122): WARNING **: the connexion is closed
No protocol specified
No protocol specified
(gksu:9122): Gtk-WARNING **: cannot open display: :0.0
답변
PAM이 처리 할 수 있습니다
이것은 Ubuntu 16.04에서 나를 위해 작동합니다 (편집 : 18.04 LTS에서도 작동합니다).
라인을 넣어 :
session optional pam_xauth.so
어딘가에 :
/etc/pam.d/su
그리고 / 또는
/etc/pam.d/sudo
“su-“또는 “sudo su-“를 수행하면 그래픽 앱을 루트로 사용할 수 있습니다.
답변
술어
이 답변에서 :
normaluser
관리자가 아닌과 같은 명령을 실행 할 수없는 일반 사용자입니다root
와 함께sudo
.admin
에서root
와 같이 명령을 실행할 수있는 관리자입니다sudo
. 물론 모든 그래픽 명령 은gksu
/가gksudo
아닌 그래픽 프론트 엔드를 사용해야하며sudo
직접은 아닙니다 .anyapplication
normaluser
로 실행하려는 그래픽 응용 프로그램의 이름입니다root
. 의 비밀번호를normaluser
알고admin
있으며 아마도이 목적으로 비밀번호를 사용할 수 있다고 들었습니다.
문제
문제의 원인과 지금까지 대부분의 다른 답변이 효과가없는 이유는 다음과 같습니다 ( Marty Fried 의 탁월한 답변 제외).
gksu
sudo
또는su
백엔드로 사용하도록 구성 할 수 있습니다 . 의 기본 동작gksu
우분투는에 대한 프론트 엔드 역할을하는 것입니다sudo
, 하지 에 대한su
. 즉 기본적으로 그런 말,하는 것입니다gksu
및gksudo
행동 정확히 같은 . 맨 페이지를 참조하십시오 .normaluser
관리자가 아닌, 따라서 같은 명령을 실행할 수 없습니다root
와sudo
. 원하는 사용자 의 비밀번호가 아니라, 자신을 실행하는 사용자sudo
의 비밀번호를 묻습니다 . 본인이 아닌 사람으로서 비밀번호를 사용하여 작업을 수행 할 수없는 것은 관리자가 아닌 것 입니다.normaluser
, 그것은 게스트 계정이 아닌 제공 할 수 다른 사용자로서 명령 실행 과를su
에 넣어, 다른 사용자의 암호 . 그러나gksu
의 프론트 엔드 역할을sudo
하지는 않습니다su
.normaluser
사용할 수 없기 때문에 명령을 직접 실행할 수 없으며 , 암호 가 없기 때문에 아무도 함께 할 수 없습니다 .root
normaluser
sudo
root
su
root
해결책
솔루션에는 두 가지 인증 단계를 수행하는 명령을 작성해야합니다.
normaluser
admin
그래픽 명령을 실행 해야합니다 . 이렇게하려면normaluser
실행해야합니다gksu
으로-w
는 실행하기 위해 플래그 SU-모드 대신 기본 sudo는 모드 및-u
플래그로 명령을 실행하는admin
대신root
.- 같은 명령을 실행
admin
해야의 호출gksu
없이-w
플래그 사용sudo
되기 위해root
.
여기 명령이 있습니다 (예, 😉 테스트했습니다 ).
gksu -w -u admin gksu anyapplication
비밀번호를 두 번 묻는 메시지가 나타납니다 .
- 먼저 백엔드 와 마찬가지로 명령을 실행
admin
하려면의 비밀번호를 입력해야합니다 .normaluser
admin
su
- 둘째, 백엔드 와 마찬가지로 명령을 실행
admin
하려면의 비밀번호를 입력해야합니다 .admin
root
sudo
맞습니다. admin
의 비밀번호를 두 번 입력하십시오 .
기타 노트 :
- 원하는 경우 두 번째
gksu
를 대신하여gksudo
혼동을 줄이십시오. 우분투에서는 동일합니다. (첫 번째를gksu
로 바꿀 수도gksudo
있지만, 이는 매우 직관적이며 혼동 될 수 있습니다.) -w
의 짧은 형식입니다--su-mode
.-S
sudo-mode 가 기본값--sudo-mode
이므로 짧은 형식 이지만 어느 것도 사용하지 않아도됩니다 .- 먼저 해를 끼치 지 않는 명령으로 테스트하여 원하는 작업을 수행 할 수 있습니다. (그렇지만 그렇게 할 필요는 없습니다.) 예를 들면 다음과 같습니다.
gksu -w -u admin gksu xclock
xclock
좋은 간단한 시계 창 응용 프로그램입니다.
답변
아마도 작동하는 한 가지 방법은 관리자로 처음 전환 할 때 “su”대신 “sux”를 사용하는 것입니다. sux는 스푸핑 된 사용자로부터 x 응용 프로그램을 실행하는 문제를 해결합니다. 표준 저장소 sudo apt-get install sux
에 있으며 명령 줄 에 입력 하여 설치할 수 있습니다 .
그런 다음 “su”대신 “sux”를 사용하면 원하는 방식으로 작동합니다.
응용 프로그램의 예를 재사용 할 수 있습니다 xclock
.
sux admin
gksu xclock
답변
pkexec
kdesudo와 gksu에 대한 유비쿼터스 대안이 있는데, pkexec
이는 policykit-1
많은 패키지에 필요한 패키지 에서 나온 것입니다.
답변
대신에
수 관리자 모든 응용 프로그램을 gksu ...
명령 자체를 gksu -u admin anyapplication
사용하여 모든 작업을 수행하는 을 시도하는 것이 좋습니다 gksu
. 또한 명령에 언급 된 사용자의 비밀번호를 입력해야합니다. 즉,이 경우에는 관리자 비밀번호 를 입력해야 합니다.
답변
이를 수행하기위한 명령은 다음과 같습니다.
gksu app-name
먼저 실행하지 않고 실행 하십시오 su
. 일반 사용자 세션에서만 위의 명령을 실행하면 응용 프로그램이 루트로 실행됩니다.
답변
다음을 사용해야합니다.
gksudo AppName
이것은 먼저 그래픽 비밀번호 요청 (사용자 비밀번호)을 가져온 다음 GUI 앱을 루트로 시작합니다 (방금 시도했지만 실제로는 재미있었습니다. 재밌는 것 : gksu AppName
그 후 즉시 시도해 보았습니다. “gk”접두사에서 알 수 있듯이 아마도 문제의 위치를 완전히 알 수는 없습니다.)