Linux 파일/폴더 권한

Linux 파일/폴더 권한

여러 사용자가 액세스해야 하는 폴더가 여러 개 있습니다. 특히 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)이 필요하다는 점에 유의하십시오. 그러나 이는 실행 비트가 파일에 적용된다는 의미는 아닙니다. 대신 실행 비트는 새 디렉터리에만 적용됩니다.rwxcd

# 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. 또한 , 및 에 대한 설명서를 사용 하거나 읽을 infoman있습니다 . 더 많은 것이 있습니다setfaclgetfaclacl질문과 답변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

이러한 파일에 액세스하는 서비스를 다시 시작해야 할 수도 있습니다.

관련 정보