각 사용자가 SFTP 연결을 통해 특정 홈 디렉터리에만 액세스할 수 있기를 바랍니다.
구조 예:
admin1 access to: /var/www/vhosts/vhost1
(optional)editor1 access to: /var/www/vhosts/vhost1/public
admin2 access to: /var/www/vhosts/vhost2
(optional)editor2 access to: /var/www/vhosts/vhost2/public
etc...
...`
답변1
어쩌면 당신은 의미감옥, 폴더를 특정 사용자로 제한합니다.
복원하도록 노력하겠습니다구성 예:
1)환경 준비
감옥 환경을 준비하려면 몇 가지 조치를 취해야 합니다. 우리는 SSH에 의해 부과된 일부 보안 제한 사항을 존중해야 합니다(원하는 경우 비활성화할 수 있지만 이는 정말 나쁜 생각입니다!).
- 감옥폴더는 루트가 소유해야 합니다.
- 감옥fodler는 그룹/타인이 작성할 수 없습니다.
.ssh/
폴더에는 모드 700이 있어야 합니다.authorized_keys
파일에는 모드 600이 있어야 합니다.
echoes
사용자 이름이 이고 홈 디렉토리가 인 사용자가 있고 /home/echoes/
이를 자체 홈 디렉토리로 제한하고 싶다고 가정해 보겠습니다. 말씀하신 대로 공개 키 인증 메커니즘을 갖춘 SFTP 계정을 사용한다고 가정해 보겠습니다.
mkdir /home/echoes/.ssh
# write echoes public-key into /home/echoes/.ssh/authorized_keys
chown root /home/echoes/
chmod 755 /home/echoes/
chown -R echoes:echoes /home/echoes/.ssh/
chmod 700 /home/echoes/.ssh/
chmod 600 /home/echoes/.ssh/authorized_keys
2)SSH 구성
이제 우리는 필요하다성냥사용자를 자신의 홈 디렉토리로 제한합니다. 이제 SSH 서버 구성 파일을 열어보겠습니다.
vim /etc/ssh/sshd_config
internal-sftp
관리 SFTP 연결 활성화 :
Subsystem sftp internal-sftp
다음 줄을 복사하여 sshd_config
구성 파일에 붙여넣습니다. 우리가 말하는 것은 일치하는 항목이 있으면 에서 정의한 폴더(이 경우 유일한 홈 폴더) echoes
로 이동하기만 하면 된다는 것입니다.ChrootDirectory
Match user echoes
ChrootDirectory /home/echoes/
ForceCommand internal-sftp
삼)하위 폴더 내 쓰기 허용
보시다시피,메인 폴더이제 사용자는 루트의 소유이므로 echoes
일부 파일이 루트에 기록되지 않습니다. 따라서 새 하위 폴더(예: echoes-write
)를 만들고 사용자가 여기에 쓸 수 있도록 허용할 수 있습니다.
mkdir /home/echoes/echoes-write/
chown echoes:echoes /home/echoes/echoes-write/
chmod ug+w /home/echoes/echoes-write/
4)쓰기 가능한 자체 폴더로 자동 이동됨
자동으로 사용자 일치 -> 감옥으로 이동 -> 자동으로 자체 감옥의 쓰기 가능한 하위 폴더로 이동해야 하는 경우
알려주시면 구성 단계를 통해 시나리오를 복원하도록 노력하겠습니다.
귀하가 시스템에 대한 정보를 작성하지 않았기 때문에 저는 많은 가정을 했습니다.