다른 사용자로 응용 프로그램을 실행하는 방법은 무엇입니까?


17

파일 관리에 krusader를 사용합니다. 문제는 아파치 DocumentRoot가 아래에 있어야한다는 것 chown www-data:www-data /path/to/www입니다. 그래서 내 계정으로 실행되는 krusader를 사용하면 /path/to/www실제로 필요한 동안에는 쓰기 권한 이 없습니다. 다른 개발자들이 그러한 제한으로 어떻게 일을 계속할 수 있는지 모르겠습니다!

krusader를 실행할 수 있는지 궁금 www-data해서 파일로 쉽게 재생할 수있을 것입니다. 하지만를 사용하여 의 비밀번호 를 su - www-data요청했습니다 www-data!!

그렇다면 Gnome에서 다른 사용자 (www-data와 같은)로 krusader와 같은 응용 프로그램을 어떻게 실행할 수 있습니까?

또는 내 경우에 다른 해결책이 있습니까? (나는 대답을 알고 정말로 궁금합니다!)

루트로 실행할 수 있다는 것을 기억하십시오 ! 그러나 이것은 사용하는 경우 일부 권한 문제를 일으킬 cp하고 mkdir, 당신은 알고있다.

추신 : sudo 그리고 gksudo도움이되지 않았습니다 :

$ gksudo -u -www-data krusader
No protocol specified
krusader: cannot connect to X server :0.0

최종 참고 사항 : 최고의 답변에 따르면, 내가 chmod u+w /path/to/www하고 내 문제가 해결되었습니다. 그러나 나는 여전히 다른 사용자로 krusader를 여는 데 성공하지 못했습니다!

답변:


4

이 질문에 대해 다시 생각하면서 (문제를 올바르게 이해하고 싶지만 틀린 경우 수정하십시오) 다른 해결책을 찾았으므로 응용 프로그램을 www-data로 실행하거나 권한을 가지고 놀 필요가 없다고 생각합니다. . 당신은 말했다 :

아파치의 DocumentRoot는 www-data : www-data / path / to / www 아래에 있어야합니다.

그러나 실제로 이것은 완전히 사실이 아닙니다. Apache는가 DocumentRoot읽을 수 www-data있지만 반드시 소유 할 필요는 없습니다. 기본적으로 Ubuntu Desktop에서는 생성 한 모든 파일과 디렉토리를 누구나 읽을 수 있으므로 DocumentRoot를 홈 폴더 내의 디렉토리로 설정할 수 있습니다. 예를 들면 다음과 같습니다.

DocumentRoot /home/user/my-project/my-document-root

감사! 방금 작동했습니다. 이것이 왜 효과가 있는지에 대한 귀하의 설명은 매우 도움이되었습니다. 이것은 내 문제를 해결했지만 여전히 krusader를 다른 사용자로 열 수있는 방법을 알고 싶습니다. 다른 솔루션은 효과가 없었습니다.
Alexar


5

메뉴 시스템에서 이것을 실행하고 싶다면 alacarte(시스템> 환경 설정> 메인 메뉴)를 사용하고 krusader에 대한 항목을 변경하고 앞에 추가하십시오 gksudo -u www-data.

gksudo -u www-data krusader

이것은 GKSudo 맨 페이지 에 따라 관리 작업 프롬프트 창을 시작합니다 .

su 및 sudo를위한 GTK + 프론트 엔드

-u스위치 없이 gksudo 만 사용 하면 명령이 루트로 실행됩니다.


감사합니다, 그러나 반환합니다 : 지정된 프로토콜이 없습니다
.krusa

2
gksudo 명령을 실행하기 전에 계정에서 터미널을 실행하십시오 :xhost +
jet

4

Marco가 언급했듯이 gksudo -u www-data <command>다른 사용자로 명령을 실행할 수 있습니다 . 나는 일상적으로 이것을 사용하여 명령을 실행 gdm했으며 지금까지 내 암호 이외의 다른 것을 요구하지 않았습니다.

kde를 사용하는 경우 동등한 것은 kdesu -u www-data krusader. 나는 krusader가 kde 응용 프로그램이기 때문에 더 잘 작동 할 수 있다고 생각 kdesu합니다. kdesu에 대한 자세한 내용은 여기를 참조 하십시오 .

나는 gksudo시스템에서 다른 "인간"사용자로서 명령을 실행 하는 데 사용 했으며 암호를 입력하라는 메시지가 표시되면 입력합니다.


고마워하지만 결과는 gksudo입니다 : 프로토콜을 지정하지 않았습니다
KRUSADER

krusader (kde 앱)의 kdesu경우 더 나은 선택입니다. 내 답변을 업데이트했습니다. 당신은 그것을 시도 할 수 있습니까?
koushik

4

자신의 암호로 www-data가 되려면 다음을 사용하십시오.

$ sudo su www-data
[sudo] password for <your username>: [enter your password]
$ whoami
(you should see www-data here)

그러나 거기에서 GUI 응용 프로그램을 실행할 수 있다고 생각하지 않습니다.

나는 보통의 모든 것을 소유 /var/www하지만 모든 사람에게 읽기 액세스를 허용합니다.

/var/www$ sudo chown -R [your-username]\:[your-group] *
/var/www$ find . -type d -exec chmod a+rx {} \;
/var/www$ find . -type f -exec chmod a+r {} \;

나는 당신의 고통을 완화 할 수 있기를 바랍니다 :)


당신이 짐작했듯이 거기에서 GUI 앱을 실행할 수 없었습니다. 그것은 말했다No protocol specified krusader: cannot connect to X server :0.0
Alexar

두 번째 솔루션이 귀하에게 적합한 옵션이 아닙니까? 당신의 데이터는하지 않습니다 내가 선호 추측하지만, www가 데이터를 소유 할 수 있습니다.
Dr Hannibal Lecter

3

터미널에서 다음을 실행해야한다고 생각합니다.

xhost +SI:localuser:<user-to-run-as>

그럼 당신은 할 수 있습니다 :

sudo su - <user-to-run-as>

마지막으로 앱을 실행하십시오.

krusader

그렇게해야합니다 <user-to-run-as>. 물론 사용자 이름으로 바꾸 십시오.


0

'gksu'와 'kdesu'는 모두 텍스트 전용 환경에있을 때 사용해야하는 도구 인 'sudo'의 그래픽 프론트 엔드입니다. 'gksu'및 'kdesu'도구를 사용하려면 "X 서버에 연결할 수 없음"오류를 설명하는 그래픽 모드에 있어야합니다.

다른 사용자로 콘솔 명령을 실행하려면 'sudo -u username 명령'명령을 사용하십시오.


고마워, 나는 그것을 실행하고 그것은 [1] 12100프로세스 ID 인 것처럼 보인다. 그러나 나는 행동에서 아무것도 볼 수 없다.
Alexar

0

www-data에서 그래픽 응용 프로그램을 실행하면 몇 가지 문제가 발생합니다. 할 수있는 일은 www-data 그룹에 자신을 추가하는 것이므로 필요한 모든 파일을 변경할 수 있습니다.

sudo adduser $USER www-data

참고 : 변경 사항을 적용하려면 세션에서 로그 아웃해야합니다.

이 명령 후에도 여전히 일부 파일을 변경할 수없는 경우 파일에 대한 쓰기 권한이 있는지 확인하십시오.

sudo chown www-data:www-data /var/www/file
chmod g+w /var/www/file

그러나 일반적인 문제에 대한 해결책은 아니지만 제 경우에는 효과가있는 것 같습니다. 나는 그것을 시도하고보고 할 것이다
Alexar

0

Anton S. Kraievoy에서 영감을 얻은 비슷한 솔루션을 사용했습니다. Krusader를 사용하는 사용자에서 xhhost에 새 사용자를 추가했습니다.

xhost +SI:localuser:username

친절하게 로그인하는 것보다 :

su - username

krusader보다 새로운 사용자에서 새 인스턴스로 올바르게 시작하는 것보다 :

krusader

~ / .kde / share / config / krusaderrc에 새로운 구성이 생성됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.