SFTP 사용자를 여러 폴더로 제한

SFTP 사용자를 여러 폴더로 제한

정말 분명한 내용이 누락되었을 수도 있지만 사용자가 SFTP를 통해 액세스할 수 있는 폴더 목록(사용자 홈 디렉터리뿐만 아니라)을 지정할 수 있습니까?

예를 들어

Admin -> Full root access  
WebDev1 -> Access to the primary vhost folder and sub directories  
SysAdmin1 -> Access to all folders, except the vhost folder  
Manager1 -> Access to vhost folder, and phpMyAdmin install folder  

"Admin" 및 "WebDev1" 사용자에게는 제대로 작동하지만 다른 사용자에게는 제대로 작동하지 않도록 할 수 있습니다.

"Manager1" 사용자의 경우 다음 항목에 대한 액세스를 허용하고 싶습니다(하위 디렉터리 포함).

/data/vhosts  
/usr/share/phpMyAdmin  

이것은 SSHD를 사용하는 Centos 7 시스템에 있습니다. 지금 꽤 몇 시간 동안 저를 혼란스럽게 만들었기 때문에 이에 관해 도움을 주시면 감사하겠습니다.

답변1

당신이 하고 싶은 일과 관련된 키워드는SFTP chroot 교도소

sshd_config를 수정해야 합니다. 먼저 다음과 같은 내용에 해당하는 SFTP를 활성화하려면 해당 줄의 주석 처리를 해제하세요.

Subsystem sftp /usr/lib64/ssh/sftp-server

sshd_config 하단에 주석 처리된 템플릿에 다음 중 일부가 있을 수 있습니다. 당신은 구체적으로 다음과 같은 것을 원할 것입니다:

# jail only user dave to folder /dave_sftp/
Match User dave
   ChrootDirectory /dave_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail only user ron to folder /ron_sftp/
Match User ron
   ChrootDirectory /ron_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp1_group to the folder /sftp1_group/
Match Group sftp1_group
   ChrootDirectory /sftp1_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp2_group to the folder /sftp2_group/
Match Group sftp2_group
   ChrootDirectory /sftp2_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

특정 사용자를 특정 폴더에 감옥에 가두는 것은 다소 간단합니다. 귀하의 질문에 따라다양한 사용자가 액세스할 수 있는 폴더 목록 지정, 별도의 그룹을 만들고 이를 사용하려는 특정 폴더와 일치시키고 해당 사용자를 감옥에 갇힌 SFTP를 제공하려는 폴더와 일치하는 관련 그룹에 배치하는 것은 귀하의 수동 작업일 뿐입니다. 액세스. 예를 들어 사용자를 및 dave두 그룹에 모두 배치하면 해당 사용자가 여러 폴더에 액세스할 수 있습니다.sftp1_groupsftp2_group

아주 좋은 예는 여기에서도 찾을 수 있습니다: https://serverfault.com/questions/591781/creating-sftp-users-and-jailing-to-chroot-on-centos-user-authentication-error

염두에 두다

chroot 홈까지의 모든 폴더는 루트 사용자만 소유하고 쓸 수 있어야 합니다. 그룹이 루트인 경우에도 폴더에 그룹 쓰기가 가능하지 않습니다.

여기 또 다른 예가 있습니다:https://askubuntu.com/questions/261663/how-can-i-set-up-sftp-with-chrooted-groups

관련 정보