FreeBSD를 로컬 웹 서버로 사용하고 있으며 SFTP를 사용하여 프로젝트 파일에 액세스하고 싶습니다. 사용자를 생성했지만 해당 사용자가 자신의 홈 디렉터리 위로 이동할 수 없도록 하고 싶습니다.
사용자 셸:/usr/sbin/nologin
사용자 홈페이지:/usr/home/username
사용자로서 SFTP 연결을 설정할 수 있지만 조작을 위해 프로젝트 파일에 액세스할 수 있도록 해야 합니다.
프로젝트 파일은 다음 위치에 있습니다./usr/local/www/nginx/projectname
관련 질문에 대한 답변을 바탕으로 다음을 시도했습니다.
mount_nullfs /usr/local/www/nginx/projectname /usr/home/username
하지만 이는 "허용되지 않는 작업".
한동안 검색해 봤는데 왜 이것이 작동하지 않는지 알 수 없습니다. 어떻게 해야 하나요?
편집하다:
- 루트로 설치해 보세요
- 사용자 홈을 프로젝트 디렉터리로 루트할 수 있었습니다.
- 이 서버는 freenas의 감옥이지만 두 디렉토리는 모두 동일한 서버에 있다는 점을 언급해야 합니다.
답변1
sshd_config
먼저, 다음이 있다고 가정합니다 .
Port 22
PermitRootLogin no
ChallengeResponseAuthentication no
UsePAM no
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
둘째, 일반 사용자로 nullfs 마운트를 수행한다고 가정합니다. 일반 사용자는 일반적으로 파일 시스템을 마운트할 수 없습니다. 루트로 시도하면 저에게 효과적입니다.
루트( sudo
또는 )로 su
테스트하여 경로가 올바른지 확인하세요. 그런 다음/etc/fstab
/usr/local/www/nginx/projectname /usr/home/username nullfs rw 0 0
그 정도면 충분합니다.
이 경우 일반 사용자가 무엇이든 설치하도록 허용하는 것은 의미가 없습니다. 하지만 필요한 경우 이를 설정 vfs.usermount=1
하고 규칙을 /etc/sysctl.conf
추가하면 됩니다 .devfs
/dev/
마지막으로, nullfs를 사용하는 경우 ChrootDirectory
사용자 홈페이지를 직접 설정할 수 있습니다 /usr/local/www/nginx/projectname
. nullfs를 사용한 간접 주소 지정은 추가 보안 계층을 제공할 수 있습니다. 하지만 당신이 당신의 것을 믿는다면 sshd_config
그것으로 충분합니다.
답변2
감옥 내부에 nullf가 마운트될 수 있도록 감옥 구성을 수정해야 합니다. 이는 일반적으로 보안상의 이유로 교도소에서는 허용되지 않습니다. 나는 그것에 반대하는 것이 좋습니다.
호스트 시스템(/etc/fstab)에서 nullfs 마운트를 구성할 수 있지만 FreeNAS에서는 구성을 저장하는 방식 때문에 이것이 더 어렵습니다.