/ var / run에 PID 파일을 쓸 수있는 권한


51

우분투

touch :`/var/run/test.pid '를 터치 할 수 없습니다 : 권한이 거부되었습니다

start-stop-daemon을 시작하고 / var / run에 PID 파일을 작성하고 싶습니다. start-stop-daemon은 내 프로그램 사용자로 실행됩니다.

/ var / run 설정은 drwxr-xr-x 9 root root입니다.

내 프로그램 사용자를 루트 그룹에 두는 것을 피하고 싶습니다.

답변:


71

기본적으로 유효 사용자 ID가 0 인 사용자 (예 : 루트)로 / var / run에만 쓸 수 있습니다. 이것은 좋은 이유이므로, 무엇을 하든지 가서 / var / run의 권한을 변경하지 마십시오. 대신 루트 / var / run 아래 에 디렉토리를 만드십시오 :

# mkdir /var/run/mydaemon

그런 다음 프로세스를 실행하려는 사용자 / 그룹으로 소유권을 변경하십시오.

# chown myuser:myuser /var/run/mydaemon

이제 / var / run 대신 / var / run / mydaemon을 사용하도록 지정하십시오.

문제의 사용자로 테스트를 실행하여 언제든지이를 테스트 할 수 있습니다.


5
이것은 나에게 잘 작동했지만 서버를 다시 시작하면 /var/run/mydaemon디렉토리가 사라졌습니다.
myborobudur

17
이것은 완전한 답변이 아니며 / var / run은 기본적으로 Ubuntu에서 tmpfs입니다. 서버가 시작될 때마다 mkdir 및 chown 명령을 다시 실행해야합니다.
Tim

1
@ 답을 수정 하고 완성하는 것은 어떻습니까?
kaiser

데몬을 다루는 경우 여기에 설명 된대로 / var / run / mydaemon 경로를 시스템 단위 파일에 추가하는 것이 좋습니다 . 더 쉬운 해킹 솔루션은 mkdir 및 chown 명령을 init.d 스크립트에 추가하는 것입니다 (있는 경우)
odedfos

1
더 광범위한 답변은 여기에 있습니다 : superuser.com/a/1127720/71795 매우 우아한 것처럼 보이는 잘못된 답변은 여기 있습니다 : stackoverflow.com/a/5174433 . 요약 : /tmp또는을 사용하십시오 ~.
Tim

13
mkdir /var/run/mydaemon
chown myuser:myuser /var/run/mydaemon

다음에 다시 부팅 할 때 유실되므로 작동하지 않습니다 ( /var/run우분투의 tmpfs입니다).

실행 가능한 유일한 솔루션은 시작 스크립트의 일부로 mkdir 및 chmod를 실행하는 것입니다.


3

당신은 이것을 시도 할 수 있습니다. / var / run / test / 디렉토리를 만든 다음 프로그램 실행과 동일한 사용자로이 디렉토리의 권한을 변경하십시오. "chown / var / run / test /". 이제 응용 프로그램에서 PID 파일의 위치를 ​​/var/run/test/test.pid로 변경하십시오. 이것은 당신을 위해 일을해야합니다.


2

/ var / run에서 "sticky"비트를 사용하는 것은 어떻습니까?

chmod + t / var / run?

다른 앱을 망칠 수도 있지만 다른 솔루션 인 것 같습니다.

그러나 지금은 별도의 / var / run 폴더를 만들 것입니다.


1

의 항목 /etc/permissions은 영구적입니다. 디렉토리에 대한 소유권과 권한을 영구적으로 유지하려면 항목을 작성하십시오.


-6

프로그램 사용자를 루트 그룹에 두지 않으려면 다른 사람이 쓰기 액세스를 허용하십시오.

# chmod 757

3
/ var / run에서 chmod 757을 수행하지 마십시오! 이것은 심각한 보안 문제를 일으킬 것입니다
michel dec

1
이것은 끔찍한 생각입니다. 그것은 잠재적으로 엄청난 보안 문제가 발생할 것
톰 오코너

보안 문제를 무시하더라도 chmod 757다음에 다시 부팅 할 때까지만 작동합니다. 새 답변을 만드는 것에 대해 죄송하지만 다른 의견에 답변 할 방법이없는 것 같습니다.
블라디미르 니콜 리치

@michel, 저자는 할 말을 한 적이 chmod/var/run. 저자는 application 서브 디렉토리에 대한 의미 일 수 있습니다. 모든 소란이 무엇인지 확실하지 않습니다.
Acumenus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.