우분투
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