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

우분투

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

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

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

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



답변

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

# mkdir /var/run/mydaemon

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

# chown myuser:myuser /var/run/mydaemon

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

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


답변

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

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

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


답변

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


답변

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

chmod + t / var / run?

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

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


답변

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


답변

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

# chmod 757