방금 resiliosync를 설치했는데 제대로 작동합니다. 기본적으로 "rslsync" 사용자를 생성합니다. 내 홈 디렉터리에 모든 동기화 프로젝트가 포함된 기본 폴더를 갖고 싶습니다. 물론 현재 rslsync는 해당 폴더에 액세스할 수 없습니다.
내 홈 디렉터리에 "sync"라는 디렉터리를 만들었습니다. 동기화 디렉터리에는 "dropbox"와 "resilio"라는 2개의 폴더도 만들었습니다. "resilio" 폴더를 "rslsync"가 사용하는 방식으로 실행되는 파일의 기본 위치로 사용하고 싶습니다.
사용자 "rslsync"에게 내 홈 디렉터리의 "resilio" 폴더에 대한 읽기, 쓰기 및 실행 액세스 권한을 부여하는 가장 좋은 방법은 무엇입니까? 내 사용자 그룹에 "rslsync" 사용자를 추가하기만 하면 필요한 모든 액세스 권한을 얻을 수 있습니까?
답변1
프로그램은 통과해야 하는 파일과 디렉터리가 다음 조건 중 하나를 충족하는 경우 파일에 액세스할 수 있습니다.
- 프로그램이 실행 중일 때 접근 권한을 가진 사용자입니다.
- 프로그램이 실행 중일 때 액세스 권한이 있는 모든 그룹.
- 누구나 접근 가능합니다.
(실제로 모든 경우에 해당되는 것은 아니지만 여기서는 충분히 근사치입니다.)
어떤 사용자가 어떤 그룹의 구성원인지는 표시되지 않습니다. 이 정보는 사용자가 로그인한 경우에만 사용됩니다. 이로 인해 해당 로그인 세션의 프로그램이 이러한 그룹으로 실행됩니다. 따라서 사용자를 그룹에 추가해도 문제가 해결되지 않습니다.
사용자에게 rslsync
해당 디렉터리 및 해당 디렉터리로 이어지는 전체 디렉터리 체인에 대한 resilio
액세스 권한을 부여해야 합니다. 에 액세스하려면 /home/liam/sync/resilio
프로그램에 디렉터리 탐색 권한( x
일반 파일의 경우 "실행"을 의미하는 속성)과 읽기 권한이 필요합니다./
/home
/home/liam
/home/liam/sync
/home/liam/sync/resilio
/home/liam/sync/resilio
당신은 그것을 사용할 수 있습니다액세스 제어 목록:
setfacl -m u:rslsync:x /home/liam /home/liam/sync
setfacl -R -m u:rslsync:rx /home/liam/sync/resilio
setfacl -R -d -m u:rslsync:rx /home/liam/sync/resilio
첫 번째 줄은 rslsync가 선행 디렉터리를 통과할 수 있도록 보장합니다. 두 번째 줄에서는 rslsync가 root에 루트가 있는 전체 디렉토리 트리에 액세스할 수 있도록 허용합니다 /home/liam/sync/resilio
. 이 플래그가 있는 세 번째 줄은 -d
새로 생성된 파일에 대한 기본 ACL을 설정합니다. 이 플래그가 없으면 rslsync는 새로 생성된 파일을 읽을 수 없습니다.
일부 애플리케이션은 기본 ACL보다 더 제한적인 ACL을 사용하여 파일을 생성할 수 있습니다. 이는 특히 파일을 다른 위치에서 복사할 때 발생합니다. 이 경우 rslsync는 이러한 파일을 읽을 수 없습니다. rslsync가 항상 파일을 읽을 수 있도록 하는 다른 방법이 있습니다. 즉, /home/liam/sync/resilio
다른 권한을 사용하여 트리의 대체 보기를 생성하는 것입니다. 당신은 이것을 할 수 있습니다파일 시스템 바인딩. 다른 사용자가 binfs 파일 시스템에 액세스할 수 있도록 하려면 루트로 설치해야 합니다. 다음 줄을 사용할 수 있습니다 /etc/fstab
.
bindfs#/home/liam/sync/resilio /var/lib/rslsync/resilio fuse ro,force-user=rslsync,perms=u+rD:go=
답변2
명령을 사용하여 각 파일 및 폴더의 권한, 소유자 및 그룹을 확인할 수 있습니다 ls -al
.
예를 들어, 다음과 같은 응답을 받을 수 있습니다.
-rw-r--r-- 1 user user 148 Aug 26 10:58 a-file
drwxrwxrwx 0 user group 512 Aug 26 10:59 a-folder
각 줄의 시작 부분에 있는 문자를 참고하세요. 이 문자는 권한을 나타냅니다. 기본적으로 모든 파일과 폴더에는 소유자, 그룹 및 기타 권한이 있습니다.
- 첫 번째 문자
-
또는는d
파일인지 폴더인지를 나타냅니다. - 다음 세 글자는
rwx
소유자 사용자의 권한에 대한 정보를 제공합니다. 이 폴더를r
읽고,w
쓰고, 실행하거나 이동하는 데 사용됩니다.x
- 다음 세 글자는 그룹의 권한을 나타냅니다. 파일은 소유자와 다른 그룹에 속할 수 있습니다.
- 마지막으로 나머지 세 글자는 다른 사람의 허가를 나타냅니다.
사용자와 동일한 그룹에 "rslsync"를 추가하면 원하는 것보다 더 많은 권한을 부여할 수 있습니다. 예를 들어 사용자가 관리자 그룹에 속한 경우 관리 작업을 실행하거나 개인 파일에 액세스할 수 있는 권한을 부여할 수 있습니다.
사용자 "rslsync"에게 rwx
"resilio" 폴더( )에 대한 전체 액세스 권한을 부여하려면 파일을 rslsync 그룹에 할당하고 해당 그룹에 폴더에 대한 전체 액세스 권한을 부여하면 됩니다. rslsync 그룹의 이름이 동일한 경우:
# change the group of the resilio folder
$ chgrp -R rslsync resilio
# set full access to the group
$ chmod -R g+rwx resilio
이런 방식으로 사용자는 파일의 소유자로 유지되고 "rslsync"는 폴더와 파일에 대한 전체 액세스 권한을 가지며 그룹은 서로 분리된 상태로 유지됩니다.