특정 디렉터리에만 연결할 수 있는 사용자 만들기

특정 디렉터리에만 연결할 수 있는 사용자 만들기

몇몇 친구를 위해 SSH 폴더를 만들었습니다. SSH를 통해 로그인할 사용자를 생성했지만 해당 사용자가 연결되어 있습니다. ~연결할 수 있는 폴더를 어떻게 설정합니까?

내 USB 드라이브를 가리키는 /usbdrv/라는 디렉터리가 있습니다.

추신: 상위 디렉토리에 들어갈 수 없습니다.

답변1

사용자의 홈 디렉터리를 설정하면 기본적으로 해당 디렉터리가 결정됩니다. 파일 시스템의 나머지 부분은 사용자에게 표시됩니다.

계정을 파일 전송으로 제한하고 특정 디렉토리 트리에만 액세스할 수 있도록 하려면 사용자를 "감옥"해야 합니다. 이것은OpenSSH 기본 지원friends;예를 들어, 이 친구들(그리고 그들만)을 그룹에 넣는다면 :

Match Group friends
ForceCommand internal-sftp
ChrootDirectory %h
#AuthorizedKeysFile /etc/sshd/friends/%u.authorized_keys

ChrootDirectory이러한 사용자를 홈 디렉터리로 제한합니다 . 모두 동일한 홈 디렉토리를 가지고 있다면 모두 동일한 SSH 키를 사용할 수 있지만 이는 아마도 원하는 것이 아닐 것입니다. AuthorizedKeysFile이러한 사용자가 자신의 인증 키를 업로드할 수 없도록 하려면 이 줄의 주석 처리를 해제하세요.

인증 관점에서 이러한 사용자를 독립적으로 처리하고, 자신의 키를 조작할 수 없도록 하고, 동일한 디렉터리 트리에 대한 모든 액세스 권한을 부여하려는 경우 특정 디렉터리를 설정할 수 있습니다.

Match Group friends
ForceCommand internal-sftp
ChrootDirectory /pub

이러한 사용자가 파일 시스템의 여러 부분에 액세스할 수 있도록 하려면 바인드 마운트를 사용하여 결합된 보기를 생성할 수 있습니다.

ForceCommand internal-sftp이러한 사용자를 SFTP 액세스로만 제한하십시오(예: Filezilla 사용 또는 SSHFS 사용). 다른 방법(예: rsync)을 허용하려면 다음이 필요합니다.더 고급 구성, 예를 들어 다음을 사용하여RSSH(읽다chroot가이드).

답변2

특별히 사용자를 만들지 않는 한아니요홈 디렉토리, 표준 디렉토리는 에 생성됩니다 /home/username. 이 디렉토리는 ~현재 쉘 또는 SSH 사용자의 해당 위치에 대한 링크일 뿐입니다./home/username

예를 들어 cd ~루트 또는 지정된 사용자로 실행되는 경우 이 명령은 사용자를 다른 위치로 보냅니다.

사용자를 지정할 수 있습니다.사용자의 홈 디렉토리를 생성하거나 다른 홈 디렉토리로 이동합니다.. 사용자의 현재 홈 디렉토리를 변경하려면 루트로 다음 명령을 실행하십시오.

usermod -m -d /path/to/new/home/dir username

새 디렉터리 구조에 대한 올바른 소유권과 권한이 있는지 확인하세요.

당신은 또한 선택할 수 있습니다기본 SSH 디렉토리 변경. 하지만 IMHO가 더 안전해 보이기 때문에 홈 디렉토리를 이동하고 싶을 수도 있습니다.

관련 정보