
저는 실행 중이고 토렌트를 다운로드하기 위해 archlinux
systemd를 사용합니다 transmission.service
. on 을 ext4
사용하여 자동으로 마운트된 하드 디스크 파티션이 있습니다 . 나는 완료된 모든 다운로드를 거기에 보관하고 해당 디렉토리를 로컬 네트워크의 삼바 서버와 공유합니다.fstab
/var/lib/transmission
/var/lib/transmission
문제는 컴퓨터가 부팅될 때마다 모든 사람에게 읽기 권한이 없다는 것을 알 수 있다는 것입니다 . 이는 삼바 서버가 해당 디렉토리의 전체 경로를 읽을 수 없으며 궁극적으로 삼바 클라이언트를 사용하여 파일에 액세스할 수 없음을 의미합니다. 부팅한 후에 실행할 수 sudo chmod a+rX /var/lib/transmission
있고 그 후에만 디렉터리에 액세스할 수 있습니다. 부팅할 때마다 transmission
권한을 다시 쓰는 것 같습니다 drwxr-x---
.
일부 시스템 파일을 편집하고 수정하는 우아한 방법이 있습니까? 아마도 sudo systemctl edit transmission.service
?
답변1
솔루션은 /etc/systemd/system/multi-user.target.wants/transmission.service
다음 에 추가됩니다.또는다음 을 사용 sudo systemctl edit transmission.service
하고 작성합니다:
[Service]
ExecStartPost=/bin/chmod a+rX /var/lib/transmission
systemctl edit
패키지 관리자가 제공한 원본 파일을 변경하지 않고 원본 서비스 파일의 항목을 재정의할 수 있는 텍스트 편집기를 엽니다.
이를 추가한 후 재부팅하고 문제가 해결되었습니다.
메모:더 많을 수도 있어요바쁜
systemctl edit
이 명령은 패키지 관리자가 제공한 원래 서비스 파일을 편집하지 않도록 생성된 것 같기 때문에 사용합니다 .메모:
chmod
배포 경로에 따라 실행 파일 경로를 조정해야 할 수도 있습니다 .
편집하다:
의 디렉터리와 매우 유사하게 /var/run
systemd가 부팅할 때마다 이 디렉터리에 이러한 권한이 있는지 확인하는 이유를 알아냈습니다. 이에 대한 원래 설명은 다음과 같습니다.https://serverfault.com/questions/824393/var-run-directory-creation-even-though-service-is-disabled/824394#824394
인용:
tmpfiles.d(5)
systemd에는 파일 외부에서 부팅 시 파일이나 디렉터리를 만드는 데 사용할 수 있는 새로운 기능이 있습니다.service
.Openvpn
그리고 둘 다 이것을 사용하고 있으므로 부팅 시 시작되지 않은 경우에도ejabberd
의 디렉터리가 계속 생성됩니다./var/run
tmpfiles 구성 파일은 다음 위치에 저장됩니다.
/usr/lib/tmpfiles.d/
어쨌든 이 문제를 해결하는 또 다른 방법은 umask 번호를 /usr/lib/tmpfiles.d/transmission.conf
다음과 같이 편집하는 것입니다.
d /var/lib/transmission 0755 transmission transmission