Linux에서 사용자 액세스 제한

Linux에서 사용자 액세스 제한

다음 세부정보를 사용하여 새 사용자를 생성합니다.

useradd -d /var/www/html/testuser.com -G users testuser

계속해서 사용자에 대한 새 비밀번호를 생성하고 SSH를 통해 로그인을 시도합니다. /var/www/html/testuser.com에 로그인하지만 여전히 해당 디렉토리로 돌아갈 수 있습니다. testuser.com 및 형제 디렉터리의 콘텐츠만 관리할 수 있도록 사용자 권한을 제한하고 싶습니다(모든 일반 작업을 수행할 수 있도록). 사용자가 디렉터리로 돌아가 효과적으로 루트 권한을 얻는 것을 원하지 않습니다. 입장.

답변1

사용자가 단지 다른 디렉토리를 탐색할 수 있다는 이유만으로 "실질적으로 루트 액세스 권한을 갖는" 것은 아닙니다. 쉘 액세스 권한이 있는 모든 사용자는 소프트웨어 설치를 찾아볼 수 있습니다. 이는 모든 사이트에서 다운로드할 수 있으므로 결국 기밀 정보는 아닙니다. 특정 디렉토리가 모든 쉘 사용자에게 노출되는 것을 원하지 않으면 적절하게 제한적인 권한을 부여하십시오.

두 번째 보안 계층을 원한다면 계정에 더 많은 제한을 적용할 수 있습니다. 이러한 사용자에게 파일 탐색, 업로드, 다운로드만 허용하려면 /var/www/html/testuser.com쉘 계정을 제공하지 말고 SFTP만 사용할 수 있는 제한된 계정을 제공하세요. 다음에서 계정별 옵션을 지정할 수 있습니다.sshd_config블록 으로 Match. ( Match지시문은 다음 Match지시문이나 파일 끝 으로 확장되므로 파일 끝에 넣으십시오 .)

Match User testuser
    Force-command internal-sftp
    ChrootDirectory /var/www/html/testuser.com

사용자가 scp 및 rsync와 같은 더 많은 명령을 사용할 수 있지만 일반 셸 액세스는 사용할 수 없도록 하려면 다음을 사용하십시오.RSSH또는스폴리해당 계정의 쉘로 rssh 또는 scponly를 설치 및 구성하여 허용할 명령을 지정합니다(참조:SCP에 탄피가 필요한가요?).

화이트리스트에 있는 몇 가지 프로그램만 실행할 수 있는 쉘 계정을 제공하려면 해당 쉘을 다음으로 설정하십시오.제한된 껍질. 이러한 사용자는 파일 권한에 따라 홈 디렉터리 외부의 파일에 액세스할 수 있습니다.

전체 쉘 액세스를 제공하고 싶지만 홈 디렉토리를 제외한 모든 것을 보이지 않게 하려면 다음과 같은 형식을 만들어야 합니다.감옥. 감옥의 가장 약한 형태는chroot 감옥, 이는 사용자를 디렉토리 트리의 한 분기로 제한합니다. 사용자를 chroot로 제한하는 것은 ChrootDirectory에 지정하는 것만큼 간단 합니다 sshd_config. 그러나 사용자는 감옥에서 나갈 수 없으므로 이 디렉토리에는 사용자가 사용할 모든 프로그램과 해당 데이터가 포함되어야 합니다. 당신은 그것을 사용할 수 있습니다번들 설치/usr감옥 내부에 일부 디렉터리(예: )를 표시합니다 .

답변2

man 5 sshd_config이 옵션을 확인해 보세요 ChrootDirectory.

답변3

/var/www/html루트만 파일/폴더를 보고 수정할 수 있도록 권한을 변경할 수 있습니다 .

좋다:

chown root:root  /var/www/html

관련 정보