sftp를 통한 심볼릭 링크 및 filezilla


15

데비안을 처음 접했고 서버를 설정하려고합니다.

폴더 /home/username와 하위 디렉토리 에만 액세스 할 수있는 사용자를 만들었습니다 .

이제 내가 설정 한 웹 서버에 해당 사용자를 사용하고 싶습니다. 액세스 권한을 부여 /var/www했지만 /var/wwwsftp를 통해 볼 수 없으며 다음과 같은 기호 링크를 수행했습니다.

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

이제 filezilla를 사용하면 다음과 같이 www 폴더를 볼 수 있습니다.

필 질라

그러나 그것을 열려고하면, 나는 이것을 얻는다 :

열다

내가 뭘 잘못하고 있니?

답변:


22

SFTP가 chroot되어있을 가능성이 있으므로 chroot jail에서 / var / www 디렉토리를 사용할 수 없습니다.

에보고 /etc/ssh/sshd_config하고, SFTP 지침을 확인합니다. 다음과 같은 것이 보입니까?

Match group sftp
  ChrootDirectory /home/%u
  AllowTcpForwarding no
  ForceCommand internal-sftp

sshd_config 매뉴얼 페이지는 여기에 있습니다 .

기본적으로 사용자가 /home/usernameSFTP에 있으면 해당 디렉토리가 /되고 외부의 참조 /home/username는 사용할 수 없습니다. 실제로, 같은 심볼릭 링크 ln -s /var/www /home/username/www는 도달하려는 것처럼 보입니다 /home/username/var/www(즉, /home/username이제 /참조하는 모든 링크가 chroot 컨텍스트의 /var/www하위 디렉토리 여야 함 /home/username).

해결책으로 chroot를 끌 수 있습니다 (그러나 SFTP 사용자가 파일 시스템을 완전히 다시 사용하는 경우 다른 보안 영향을 미칩니다). / var / www를 / home / username / www에 루프 마운트 할 수 있습니다 ( chroot에서 예상대로 작동하는 ( mount --bind /var/www /home/username/www문서를 확인하십시오 mount)). sshd_config 파일을 사용하여 chroot에서 특정 사용자를 제외시킬 수도 있습니다 (다시 보안상의 의미가 있음).

바인드 마운트를 먼저 시도합니다.


2
마운트 바인드 트릭의 경우 +1!
Helge Klein

1
재부팅 /etc/fstab/home/username/www /var/www none bind 0 0
후에도

0

내가 만든 심볼릭 링크를 연결 해제하기로 결정했습니다.

root@server:/home/username# mkdir www
root@server:/home/username# mount --bind /home/username/www /var/www

(내가 모든 것을 잃어버린 경우에도 / var / www에 있었지만 상관하지 않습니다)

모두 감사합니다!


당신은 아무것도 잃지 않았습니다. 다시 마운트하기 전에 파일을 마운트 해제하고 복사하십시오.
Zoredache

감사합니다! 링크가있는 파일은 하나 밖에 없었고 중요한 것은 없었지만 복구 할 수 없었습니다. :
Doc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.