user1 하위 디렉터리에 user2에게 읽기 전용 권한 부여

user1 하위 디렉터리에 user2에게 읽기 전용 권한 부여

서버: 데비안

user1내 디렉터리는 다음과 같습니다 . 홈 디렉터리 의 다른 항목에 대한 액세스 권한을 부여하지 않고 공유 디렉터리를 설정하지 않고 위치한 파일에 대한 읽기 권한을 /home/user1/website/logs 새 사용자에게 부여하려고 합니다 .user2/home/user1/website/logsuser2user1

가능하다면 어떻게 이를 달성할 수 있습니까, 아니면 불가능합니까?

편집: 또한 /home/user1/website/logs에 포함된 모든 파일에 대한 권한을 제한하여 전 세계가 해당 파일에 대한 권한을 갖지 못하도록 해야 합니다. 서버의 사용자만 액세스할 수 있어야 합니다.

답변1

당신에게는 루트 액세스 권한이 있고 user2에게는 그렇지 않다고 가정하면 다음과 같은 방법으로 클래식 UNIX 권한을 사용하여 설정할 수 있습니다. 이 액세스 계획에 대한 그룹을 만듭니다(액세스 제어를 위해서는 user2만 필요하지만 user1과 user2를 모두 포함할 수 있음). 아래에서 이름으로 참조하겠습니다 rdlog. 그룹이 설정되면 다음 명령을 사용하여 원하는 것을 설정해야 합니다.

chgrp rdlog /home/user1 /home/user1/website /home/user1/website/logs
chmod g=x /home/user1 /home/user1/website
chmod -R g=r /home/user1/website/logs

x디렉터리 권한의 비트 만 설정하면 해당 디렉터리 내의 정확한 참조만 사용할 수 있습니다. 이는 누구나 rdlog로그 디렉터리를 나열하거나 CD로 이동할 수 있음을 의미합니다. 디렉터리와 그 안의 파일에 대한 읽기 전용 권한을 가집니다. 이것은 많은 제한을 가지고 있습니다.

첫째, 보안의 일부는 모호함을 통한 보안입니다. 디렉토리 나열 권한을 부여하지 않았 /home/user1더라도이름을 추측하더라도 그 안에 있는 파일을 계속 참조할 수 있습니다(그러나 파일의 권한은 그때부터 적용됩니다). 예를 들어, cat /home/user1/.bashrc수신한 오류(해당 파일 없음 및 권한 거부됨)를 입력하고 파일이 실제로 존재하는지 확인할 수 있습니다.

두 번째 제한은 다음과 같은 작업만 수행할 수 있다는 것입니다.한 번. 다른 사용자에게 홈 디렉터리 아래의 다른 콘텐츠에 대한 액세스 권한을 부여해야 하는 경우 그룹은 하나만 설정할 수 있으므로 동일한 작업을 수행할 수 없습니다.

ACL을 사용하여 수행할 수 있는 작업도 있습니다. 올바르게 수행하면 이러한 제한을 피할 수 있습니다. 그러나 문제의 디렉터리를 실제로 권한을 올바르게 적용할 수 있는 다른 곳으로 이동하면 실제로 원하는 것을 얻을 수 있습니다(즉, 이 질문을 하게 만든 실제 질문). 참조할 때 여전히 이를 확인해야 하는 경우 ~/website/logs해당 위치에서 새 위치로의 소프트 링크를 배치할 수 있습니다.

관련 정보