사용자를 자신의 홈 디렉터리로 제한

사용자를 자신의 홈 디렉터리로 제한

sudo도 사용할 수 있는 사용자가 있습니다. 나는 그가 그의 홈 디렉토리에만 접근하는 것을 제한하고 싶습니다. 다른 것은 없습니다. 나는 "제한된" 그룹을 만들고 그를 그 그룹으로 옮겼습니다. 무엇을 해야 할까요?

그가 자신의 홈 디렉토리에만 접근하는 것을 어떻게 제한할 수 있나요?

답변1

특정 액세스를 차단하는 것은 기본적으로 모든 액세스를 차단하고 각 액세스에 대해 특정 예외를 추가하는 것보다 훨씬 어렵습니다. 이에 대한 눈에 띄는 용어도 있습니다.원칙적으로. 따라서 실행할 수 있는 명령을 명시적으로 지정하여 사용자가 절대 사용할 sudo수 없도록 하십시오. root이 작업을 완료하면 몇 가지 옵션이 있습니다.

  • 디렉터리 권한 제한(옵션 1). /시스템의 루트( ) 디렉터리에 있는 모든 디렉터리에 대해 실행 비트가 꺼져 있는지 확인하십시오.허용하다그룹. 이는 일반적으로 다음과 유사한 것을 실행하는 것을 의미합니다.

    $ chmod o-x <dir>
    

    위 명령을 실행했지만 이 사용자가 구성원인 그룹(적어도 limited질문에 있는 그룹)이 있는 모든 디렉터리에 대해 동일한 작업을 수행합니다. 이는 다음을 실행한다는 의미입니다.

    $ chmod g-x <dir>
    

    기본 최상위 디렉터리의 디렉터리 실행 권한에 대한 이러한 변경은 실용적이지 않을 수 있습니다. 자세한 권한 설정 없이 디렉터리(예: /또는 )를 변경할 수 있어야 하는 몇 가지 중요한 프로세스가 있을 수 있습니다. /var하지만 적어도 몇 번은 할 수 있어요사적인목차.

  • chroot 감옥을 사용하세요(옵션 2). 현실적인 선택은 사용자가 로그인 후 즉시 제한된 환경에 대한 정보를 얻을 수 있도록 chroot Jail을 사용하는 것이라고 생각합니다. chroot 환경을 설정하는 것 외에도 OpenSSH 서버도 적절하게 구성해야 합니다. 이는 를 통해서만 시스템에 액세스할 수 있다고 가정합니다 ssh. 또는 이미 설명한 Jailkit을 사용할 수 있습니다.여기.

답변2

Unix에서 가장 기본적인 작업을 수행하려면 사용자가 다양한 리소스(실행 파일, 라이브러리, 구성 파일, 매뉴얼 페이지, 예제...)에 액세스해야 합니다. cp(1), , , 와 같은 "일반 명령"으로 간주되는 것조차도 ls(1)사용자가 실행하는 일반 프로그램이므로 사용자가 액세스할 수 있어야 합니다. 사용자필요시스템의 큰 부분에 대한 접근이 차단되면 시스템이 사실상 쓸모 없게 됩니다.

사용자가 다른 사용자의 파일을 탐색할 수 없도록 하려면 사용자 홈 디렉토리의 (현재는 전통적인) Linux 구성을 통해 이를 달성할 수 있습니다. 사용자 Joe Sixpack이 이라고 가정해 보겠습니다 joe. 이름 joe과 기본 그룹을 사용하여 그를 위한 계정(UID)을 만듭니다. 그의 집은 해당 그룹이 소유하고 유사한 권한을 가집니다(예: 읽기, 쓰기 및 검색이 가능합니다. 그룹에는 Joe 자신 외에는 아무도 없습니다. 그리고 아무도 없습니다). 그렇지 않으면 무엇이든 할 수 있습니다).joejoejoedwrx------joejoe

관련 정보