여러 사용자가 액세스해야 하는 폴더가 여러 개 있습니다. 특히 Medusa(아직 백업하지 않은 TV 프로그램 에피소드를 추적하는 데 사용), Plex(집 주변의 다양한 장치로 디지털 백업을 스트리밍하는 데 사용) 및 Media(내 사용자) 로그인) 제가 겪고 있는 문제는 제가 무엇을 하든 세 명의 사용자가 동시에 폴더에 액세스하도록 할 수 없다는 것입니다.
모든 사용자를 그룹에 추가하고 사용자, 그룹 및 모든 사람 설정에 대해 전체 rwx 권한을 허용하도록 파일/폴더 권한을 설정했지만 여전히 세 가지를 모두 동시에 작동시킬 수 없는 것 같습니다.
어떤 이유로든 중요한 경우를 대비해 모든 파일/폴더는 부팅 드라이브가 아닌 두 번째 하드 드라이브(sdb1)에 있습니다. 하드 드라이브의 마운트 지점은 /media/media/storage2이지만 /media/에서 시작하는 모든 명령을 실행합니다. 그렇지 않으면 사용자가 드라이브의 어떤 항목에도 액세스할 수 없게 되기 때문입니다.
뭔가를 보고 싶을 때, 나는 이 명령을 사용하여 sudo chown -R plex:server /media/
파일 소유자를 groupOwner에서 plex로 변경합니다. server는 모든 사용자를 포함하는 내가 만든 그룹입니다.
나는 이 명령을 사용하여 모든 폴더와 모든 파일의 권한을 변경합니다 sudo find /media/ -type d -exec chmod 777 {} \;
.sudo find /media/ -type f -exec chmod 777 {} \;
나는 777이 보안에 좋지 않다는 것을 알고 있습니다. 원래는 775를 사용하려고 했지만 그 사실을 알기 전까지는 777이 문제를 해결하기를 바랐지만 그렇지 않았습니다.
이것을 달성하기 위해 또 무엇을 시도할 수 있는지 잘 모르겠습니다.
편집하다:
JHuffard의 제안을 시도하고 실행했는데 sudo chown -R plex /media/
모든 관련 디렉터리 및 파일에 대한 권한이 표시되었지만 sudo chgrp -R server /media/
모든 것이 sudo chmod -R 777 /media/
여전히 잠겨 있었습니다.drwxrwxrwx
답변1
이러한 ACL 명령은 Linux에만 적용됩니다. 먼저 모든 소유권과 권한을 표준으로 설정하세요.
chown -R root:root /media
find /media -type d -exec chmod 0755 {} +
find /media -type f -exec chmod 0644 {} +
문서
다음으로 ACL(액세스 제어 목록)을 올바르게 사용하는 방법을 결정하세요. (어떤 사용자 및/또는 그룹이 어떤 파일이나 디렉터리에 대한 읽기 또는 쓰기 권한이 필요한지 자세히 알고 있지만 질문에 지정되어 있지 않습니다.) 다음은 몇 가지 예입니다. 각 예에서는 ACL이 올바르게 정의되도록 명시적 ACL을 설정한다는 점을 기억하세요.문서(아직 디렉토리가 아닙니다). 나중에 ACL그리고기본 ACL은 다음에 적용될 수 있습니다.목차. 아래는 -m
적용할 마스크입니다.
# Give medusa user (u) read-write; give group_name (g) read; give others (o) read.
find /media -type f -exec setfacl -m u:medusa:rw-,g:group_name:r--,o:r--
# Give plex user (u) read-write.
find /media -type f -exec setfacl -m u:plex:rw-
# Give server group (g) read-write.
find /media -type f -exec setfacl -m g:server:rw-
# Give media user (u) read-write.
find /media -type f -exec setfacl -m u:media:rw-
# Give media user (u) read-write, server group (g) read-write, others (o) read.
find /media -type f -exec setfacl -m u:media:rw-,g:server:rw-,o:r--
목차
파일에 적용된 ACL은 디렉터리에도 적용될 수 있지만 기본 ACL도 설정할 수 있다는 점에서 약간 다릅니다( -d
). 이 스위치를 사용하면 -d
디렉터리의 모든 새 파일 시스템 개체가 자동으로 정의된 ACL을 상속합니다. ACL은 디렉터리 자체에 대해 설정되어야 한다는 점을 기억하는 것이 중요합니다.그리고ACL이 새 파일에 자동으로 적용되는 경우 기본 ACL이 사용됩니다. 또한 다음은 x
디렉토리()를 변경하기 위해 실행(in)이 필요하다는 점에 유의하십시오. 그러나 이는 실행 비트가 파일에 적용된다는 의미는 아닙니다. 대신 실행 비트는 새 디렉터리에만 적용됩니다.rwx
cd
# For each directory itself:
find /media -type d -exec setfacl -m u:media:rwx,g:server:rwx,o:r-x {} +
# To set a default ACL in each directory - the same command as above with the `-d` switch:
find /media -type d -exec setfacl -d -m u:media:rwx,g:server:rwx,o:r-x {} +
각 ACL에 대해 위의 두 명령을 반복하여 대상에 따라 사용자 및/또는 그룹을 변경합니다. 이 작업은 필요한 만큼 ACL을 추가할 수 있도록 ACL을 스택하고 각각의 새 파일 시스템 객체에 대한 ACL 자동 할당을 완료합니다.
"ugo" 방법(예: rwx) 또는 8진수(예: 7)를 사용할 수 있습니다.
rwx
r--
rw-
r-x
7
4
6
5
즉, 다음 명령은 동일합니다.
setfacl -m u:media:rwx,g:server:rwx,o:r-x {} +
setfacl -m u:media:7,g:server:7,o:5 {} +
이 그룹은 다른 마스크와 동일하게 작동 g:groupname:---
하거나 다음과 같이 결합됩니다.
u:username:---,g:groupname:---,o::---
나는 하나의 콜론이 "기타"에도 작동하는 것으로 나타났습니다.
u:username:---,g:groupname:---,o:---
사용자 이름이나 그룹 이름을 지정하지 않으면 현재 사용자/그룹 소유권에 마스크가 적용됩니다.
어떤 사용자 또는 그룹에 어떤 수준의 액세스가 필요한지 정확히 알지 못하면 더 정확하게 말하기가 어렵습니다. 먼저 분석을 수행하고 디렉토리 트리에서 더 깊은 프로세스를 시작하고 싶을 수도 있습니다. ACL을 처음 사용할 때 이를 모두 제거하는 방법을 아는 것이 도움이 될 수 있습니다 setfacl -Rb /media
. 또한 , 및 에 대한 설명서를 사용 하거나 읽을 info
수 man
있습니다 . 더 많은 것이 있습니다setfacl
getfacl
acl
질문과 답변ACL에 대해 ACL Q/A가 문제의 운영 체제인 Linux에 적용되는지 확인하시기 바랍니다. (ACL은 주요 운영 체제 변형에 따라 다르게 구현됩니다.) ACL은 이 답변의 상단에 설정된 표준 소유권 및 권한을 향상시킵니다. ACL이 있는 곳에는 +
아래 모델과 유사한 플래그가 있다는 것을 알 수 있습니다.
drwxr-xr-x 2 root root 4096 Jul 8 16:00 dir_without_acl
drwxr-xr-x+ 2 root root 4096 Jul 8 16:00 dir_with_acl
이러한 파일에 액세스하는 서비스를 다시 시작해야 할 수도 있습니다.