사용자가 자신에게 속하지 않은 파일을 볼 수 없도록 제한

사용자가 자신에게 속하지 않은 파일을 볼 수 없도록 제한

일반적으로 이와 같은 파일에는 /etc/passwd권한이 있습니다 644. 즉, 모든 사람이 파일을 읽을 수 있는 권한이 있지만( 4) 소유자만 읽을 수 있는 권한이 있습니다.그리고4+2( = ) 라고 쓰세요 6.

실제로 소유한 디렉터리와 파일에 대한 읽기 및 쓰기 액세스만 가질 수 있는 "제한된" 사용자를 시스템에 만들고 싶습니다.심지어시스템 파일에 /etc/passwd읽기 권한이 있으면 해당 사용자가 해당 파일을 읽을 수 없도록 하고 싶습니다.

할 수 있다컴퓨터의 모든 파일을 해당 파일을 소유하지 않은 모든 사용자가 읽을 수 없도록 변경하십시오. 그러나 이로 인해 많은 문제가 발생할 수 있습니다.

특정 사용자가 자신에게 속하지 않은 모든 파일을 볼 수 없도록 제한하는 방법이 있습니까?

답변1

사용자가 시스템에 SSH로 연결하려는 경우 조금 더 어렵습니다. SFTP 클라이언트를 사용하는 경우 chroot Jail을 설정할 수 있습니다. 이렇게 하면 ChrootDirectory를 참조하는 폴더로 설정할 수 있습니다.

답변2

가능한 옵션 중 하나는 최소 시스템 설치를 통해 chroot를 설정하는 것입니다. Debian과 Ubuntu에서는 debootstrap을 통해 이 작업을 수행할 수 있습니다. FreeBSD에서는 이 작업이 감옥을 통해 더 철저하게 수행됩니다(여기를 제외하고 감옥에 대해서는 구체적으로 언급하지 않겠습니다).

이 단계를 완료한 후 chroot 환경의 다른 포트에서 sshd를 시작하십시오. 이 같은:

chroot /srv/chroot-for-user /usr/bin/sshd -p 2200

chroot의 /etc/passwd에 사용자를 추가하고 이에 대한 홈 디렉터리를 만듭니다.

새로운 환경에 로그인하면 chroot 경계 앞의 파일만 볼 수 있습니다. 이전과 마찬가지로 chroot의 모든 시스템 파일에 대한 읽기 액세스 권한을 가집니다. 왜냐하면 chroot가 없으면 ls, awk 및 tee와 같은 일반 시스템 도구를 사용할 수 없기 때문입니다. 그러나 자체 복사본이 되며 외부 누구와도 공유되지 않습니다. chroot.

이런 종류의 일을 수행하는 더 현명한 방법이 있지만 chroot는 파일 시스템 액세스를 제한하는 검증된 진정한 방법입니다.

관련 정보