나는 이 문제가 배포 및 하드웨어와 관련이 없다고 확신합니다. root:minidlna 및 권한 775를 사용하여 minidlna용으로 구성된 디렉터리(및 하위 디렉터리)가 있는 ext4로 포맷된 USB 드라이브가 있습니다. 최근에는 동일한 사용자 이름을 사용하여 minidlna도 설치된 새 설치로 이동되었습니다. 그러나 이 새로운 설치에서는 minidlna가 이 디렉토리의 내용을 읽을 수 없습니다. 각 경우의 하드웨어는 Ubuntu Server 21.04가 설치된 Raspberry Pi 4입니다.
(또한 이 디렉터리를 루트로 액세스하는 Nextcloud의 Snap 설치 인스턴스에 대한 데이터 디렉터리로 이 디렉터리를 상위로 지정하고 기존 디렉터리에 루트로 새 파일을 생성할 때 일부 권한 거부 문제가 발생합니다! 문제가 의심됩니다. 관련이 있으며 minidlna의 이유를 이해하면 nextcloud snap도 이해하겠습니다.
다음 제안을 확인했습니다.
id minidlna
uid 112 및 gid 120을 반환하고 ls -aln
일치하는 gid 120을 반환합니다.
drwxrwxr-x 17 0 120 4096 8월 10일 16:55.
이를 보장하기 위해 chown -R 112:120
디렉토리를 조작했지만 여전히 차이는 없습니다. minidlna 데몬을 다시 시작한 다음 상태를 확인하면 항상 (잘림)
minidlna.c:670: 오류: 미디어 디렉터리 '/media/path_to/directory'에 액세스할 수 없습니다. [권한이 거부되었습니다.]
답변1
파일 시스템은 사용자를 저장하지 않습니다.이름, 숫자 UID만 저장합니다. 한 시스템에서는 UID 123으로, 다른 시스템에서는 UID 142로 사용자를 생성한 경우 minidlna
호스트 간에 파일 시스템을 이동할 때 불일치가 발생합니다.
이런 일이 발생하지 않도록 하는 것이 관리자의 임무입니다. 데비안과 우분투는 UID 100부터 순차적으로 시스템 사용자를 생성한다고 생각하는데, 두 시스템에 서로 다른 소프트웨어를 설치하거나(또는 동일한 소프트웨어를 다른 순서로!) 설치하면 UID 번호가 일치하지 않습니다.
/etc/passwd
세 번째 필드인 UID를 확인하세요 .
상황을 해결하려면 호스트 중 하나에서 minidlna와 관련된 모든 항목을 삭제하고 다른 호스트에서와 동일한 UID를 가진 사용자를 생성한 다음 모든 항목을 다시 설치하면 됩니다. 물론, 사용하려는 UID가 무료인지 확인하세요.
예를 들어, UID 123과 UID 142가 호스트 A에서 사용 가능하고 UID 142와 UID 123이 호스트 B에서 다른 용도로 사용되는 경우 minidlna
호스트 minidlna
A에서 번호를 다시 지정합니다.
이는 사용자와 함께 생성할 수 있는 모든 그룹에 거의 동일하게 적용됩니다. 확인하세요 /etc/group
. 네 번째 필드는 에 있습니다 /etc/passwd
.