Systemd ProtectHome 및 특정 홈 디렉토리에 대한 액세스 허용

Systemd ProtectHome 및 특정 홈 디렉토리에 대한 액세스 허용

다음 정의로 systemd 서비스를 사용하는 데 문제가 있습니다.

[Unit]
Description=Test
After=network.target

[Service]
WorkingDirectory=/home/testuser/testdir
User=testuser
Group=testuser
ProtectHome=true

...

며칠 전 패키지를 업데이트하기 전까지는 정상적으로 작동했습니다. 그러나 이제 ProtectHome이 true로 설정되면 서비스가 실행 중인 사용자의 홈 디렉터리에 액세스하려고 할 때 서비스 권한이 거부됩니다.

의도적인 것입니까(예: ProtectHome은 사용자의 홈 디렉토리를 포함해 모든 홈 디렉토리에 대한 액세스를 거부함)? 그렇다면 집 아래의 특정 디렉터리를 화이트리스트에 추가할 수 있는 방법이 있습니까? ReadWriteDirectories에 추가해도 작동하지 않는 것 같습니다. 아니면 서비스 디렉터리를 집 밖으로 옮겨야 합니까?

당신의 도움을 주셔서 감사합니다

날아다니는 새들

답변1

~에서systemd.exec 매뉴얼 페이지논의하다 ProtectHome=:

true인 경우 /home/, /root 및 /run/user 디렉토리는 이 유닛을 호출하는 프로세스에 액세스할 수 없으며 비어 있게 됩니다.

서비스가 디렉터리를 소유한 사용자로 실행 중이더라도 서비스가 홈 디렉터리에 액세스할 수 없다는 점을 예상해야 합니다.

나는 이 동작이 최근에 바뀌었다고 믿지 않으므로 이전에는 왜 작동했는지 모르겠습니다. 설정을 추가했지만 데몬이 다시 로드되지 않았습니까?

관련 정보