내 친구 중 일부가 사용자 계정을 만들어 내 컴퓨터에 액세스할 수 있기를 바랍니다. 그들은 주로 sftp와 ssh를 통해 내 컴퓨터에 액세스하지만 때로는 내 집에서도 액세스할 수 있습니다. 그러나 나는 그들이 내 모든 파일을 볼 수 있기를 원하지 않습니다(내 홈 디렉토리의 개인 파일이 아니라 etc, lib와 같은 사용자 디렉토리 외부에 있는 파일을 의미합니다...).
나는 최근에 다음과 같은 질문을 했습니다.
OpenSSH, chroot 사용자: 루트에는 사용자 디렉터리가 있어야 합니다. 결과가 있습니까?
나에게 주어진 요구 사항은 사용자를 chroot하는 경우 각 사용자에 대한 완전한 환경을 만들어야 한다는 것입니다.
실제로 사용자가 홈 디렉토리 밖으로 나가는 것을 방지하고 cp
이와 같이 홈 디렉토리 외부를 가리키는 프로그램에 인수를 전달하는 것을 방지하는 방법이 있습니까? 아니면 실제로 내 시스템을 비공개로 유지하는 방법이 있습니까? 가장 좋은 해결책은 무엇입니까? 나는 그들이 내 모든 프로그램을 완전히 사용할 수 있기를 원하지만 파일을 복사하거나 읽을 수 없거나 프로그램을 사용하여 홈 디렉토리 외부의 파일을 읽거나 복사할 수는 없습니다.
답변1
그들에게 귀하의 모든 프로그램에 대한 전체 액세스를 허용할 수 있을지 의심스럽습니다. 하지만 집 밖에서는 파일을 읽을 수는 없습니다. 필요한 것은 구성 파일을 사용하여 이를 깨뜨리는 프로그램뿐입니다.
가상 머신을 생성하고 가상 머신에 대한 사용자(또는 루트) 액세스 권한을 부여할 수 있습니다.
몇 가지 일반적인 가상 머신 솔루션은 다음과 같습니다.
- 젠
- 가상 상자
- 키보드 가상 머신
- 오픈VZ
답변2
홈 디렉토리(또는 그 일부)를 무제한으로 만드는 몇 가지 옵션이 있습니다.
를 사용하여 홈 디렉토리를 소유자 전용 액세스로 변경합니다
chmod 700 ~
. 이렇게 하면 사용자와 루트만 해당 디렉터리에 액세스할 수 있습니다.홈 디렉터리를 암호화된 파일 시스템으로 이동합니다. (이렇게 하면 암호화되지 않은 파일 시스템에 액세스하는 것을 방지할 수 있습니다. 파일 시스템이 암호화되지 않은 경우 액세스할 수 있는 경우 위와 함께 이 방법을 사용하십시오.)
파일 암호화 도구를 사용하여 개별 파일에 대한 액세스를 방지합니다.
숨겨진 디렉터리에 개인 파일을 숨깁니다.
.private
비공개 콘텐츠를 숨기려면 비슷한 이름을 사용하세요 . 모호한 안전 일뿐입니다. 안전하게 만들려면 위의 옵션 중 하나 이상과 결합해야 합니다.
친구에게 루트 액세스 권한을 부여하면 보안 설정을 우회할 수 있는 권한이 커진다는 점을 기억하십시오. (공유하고 싶지 않은 파일과 시스템에 대한 액세스를 공유하면 위험이 있습니다.)
답변3
"내 모든 프로그램에 대한 전체 액세스"가 의미하는 바에 따라 옵션은 다음과 같습니다.
표준 Unix 파일 권한을 사용하여 파일을 보호하세요.. 이것의 장점은 보호하려는 파일을 결정하고 해당 파일에 대한 적절한 권한을 설정하는 것만큼 설치가 쉽다는 것입니다. 단점은 친구가 루트 액세스 권한이 없기 때문에 시스템에서 모든 작업을 수행할 수 없다는 것입니다.
FreeBSD 감옥 실행. FreeBSD에는 이러한 목적을 위해 특별히 설계된 감옥이 있습니다. 이를 설정하려면 약간의 노력이 필요하지만 친구가 원하는 대로 사용할 수 있는 완전한 파일 시스템을 제공하면 됩니다.http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html
실제 가상 머신 실행. Xen 또는 Virtualbox를 실행하여 친구들에게 완벽하게 작동하는 서버를 제공할 수 있습니다. 이는 메모리, CPU 및 디스크 측면에서 상당히 리소스 집약적일 수 있지만 파일과 가장 분리되어 있습니다.