/etc
아래의 일부 구성 파일을 읽고 아래의 데이터베이스 파일에 써야 하는 애플리케이션을 개발 중입니다./var/lib
.service
응용 프로그램이 시스템 서비스로 실행될 수 있도록 파일을 작업 중입니다 .
애플리케이션은 많은 네트워크 관련 작업을 수행하며 해당 피어를 알 수 없는 경우도 있습니다.
.service
네트워크 및 알 수 없는 피어와 관련된 보안 영향에 주의하고 싶기 때문에 파일의 User 매개변수를 일반 사용자(루트 아님)로 설정했습니다 . 그러나 이렇게 하면 애플리케이션이 데이터베이스에 쓸 수 없게 됩니다 /var/lib
. .
이것을 설정하는 안전한 방법은 무엇입니까?
답변1
내 솔루션은 @filbranden의 의견 제안과 유사합니다(감사합니다!).
관리자 사용자는 특정 그룹에 속합니다. 그룹 소유권을 /var/lib/db
그룹으로 설정하고(사용자 소유권은 그대로 유지됨 root
) 디렉터리에 대한 권한을 775
( drwxrwxr-x
그룹에 w
권한이 있음)로 설정했습니다.
이제 systemd 서비스는 관리자가 실행하기 때문에 /var/lib/db
작성에 오류가 발생하지 않습니다.