
내 홈 디렉터리의 폴더를 다른 사용자와 공유할 수 있나요?
내 시스템에 두 명의 사용자가 있고 agent
.external daemon
서버는 agent
파일로 연결하여 파일을 다음과 동기화합니다.~agent/incoming
daemon
파일에 액세스 하고 싶지만 어떤 파일 에도 액세스 ~agent/incoming
하고 싶지 않습니다 .agent
daemon
라는 그룹을 만들고 automaton
여기에 두 명의 사용자를 추가했습니다. 그런 다음 ~agent/incoming
폴더를 다음과 같이 chmod하고 drwxrws---
(고정 비트 참고) 폴더를 agent:automaton
.
프로세스가 실행되어 새 파일을 폴더로 전송 하고 권한을 incoming
설정 하지만 파일을 보거나 복사할 수는 없습니다.agent:automaton
-rw-rw----
daemon
stat: cannot stat (path here) : Permission denied
내가 뭘 잘못했나요?
답변1
귀하의 질문에 데몬에 전달할 경로를 말하지 않았거나 지정하지 않았기 때문에 정확하게 대답하기가 어렵습니다 ~agent
. 디렉터리에서 데몬을 시작 ~agent/incoming
하고 상대 경로를 전달하면 데몬이 automaton
그룹 에 있기 때문입니다. ~agent/incoming
디렉터리에 있는 파일을 읽고, 쓰고, 삭제할 수 있습니다 .
내가 원하는 것은 다음과 같습니다.
- 이
~agent
디렉토리는 데몬에 의해 실행 가능하지 않습니다. - 데몬에 전달된 경로는
~agent
구성 요소로 포함됩니다(즉, 절대 경로입니다).
프로세스가 에 액세스할 때 통과하는 모든 디렉터리( , 및 /home/agent/incoming/foo
)에 대한 실행 권한이 있어야 합니다 (일부가 심볼릭 링크인 경우 더 많은 권한이 필요합니다) ./
/home
/home/agent
/home/agent/incoming
데몬이 foo
현재 디렉터리에 액세스하는 경우 ~agent/incoming
현재 디렉터리( ) 자체에 대한 실행 권한만 필요합니다. ~agent/incoming
해당 디렉터리를 현재 디렉터리로 만들어야 합니다. chdir
이를 위해서는 대상 디렉터리에 액세스할 수 있는 프로세스가 필요합니다. (예를 들어) 사용자로 실행하는 경우 먼저 원하는 디렉터리로 변경한 agent
다음 su daemon -c daemon-command
.
답변2
"~agent/incoming"에 대한 권한이 있어도 "~agent/" 폴더의 데몬에는 권한이 없으므로 권한 계층 구조입니다. 다음을 참조하세요.계층적 디렉터리 권한에 대한 질문