SFTP가 상위 디렉토리가 아닌 하위 디렉토리에만 액세스하도록 만드는 방법

SFTP가 상위 디렉토리가 아닌 하위 디렉토리에만 액세스하도록 만드는 방법

tom사용자에게 디렉토리에 대한 SFTP 액세스 권한을 부여하고 싶습니다 /var/www/html/my_project/. 디렉토리에 대한 SFTP 액세스 권한을 부여하고 싶지는 않습니다 /var/www/html/.

현재 Apache 사용자가 소유하고 있습니다 /var/www/html/my_project/. 사용자에게 tom 및 apache 디렉터리에 대한 액세스 권한 /var/www/html/만 부여하면 됩니다 ./var/www/html/my_project/

액세스 권한이 부여되면 tom은 /var/www/html/my_project/ 아래의 모든 디렉토리에 액세스할 수 있습니다.

저를 도와주세요. 저는 이 문제로 오랫동안 어려움을 겪고 있습니다.

답변1

/etc/ssh/sshd_config내 파일에서 다음과 같은 것을 사용합니다.

Match User tom
ChrootDirectory /var/www/html/my_project/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

그런 다음 Tom이 디렉터리에 액세스할 수 있는지 확인하세요. tom대상 디렉터리 위의 모든 디렉터리에 대해 최소한 "x"(실행) 권한이 필요하기 때문에 이는 까다로울 수 있습니다 . 대부분의 Linux/Unix 버전에서 /var/www/html/은 일반적으로 모든 사람이 액세스할 수 있습니다.

나는 아마도 my_project디렉토리를 소유하게 만들고 tomTom을 Apache 그룹에 포함시킬 것입니다. Apache가 apache:apache(사용자:그룹)로 실행 중인 경우 다음을 적용해야 합니다.

~에서http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

# usermod -a -G apache tom

my_project사용자 tom및 그룹이 전체 디렉토리를 소유하도록 만듭니다 apache.

# chown -R tom:apache /var/www/html/my_project/

전체 my_project디렉토리를 그룹이 완전히 쓸 수 tom있고 그룹이 읽기/실행할 수 있도록 만듭니다 apache.

# chmod -R 750 /var/www/html/my_project/

참고: 생성된 모든 파일은 tomTom의 사용자와 해당 기본 그룹의 소유가 됩니다. 위의 예는 tom그룹에 추가되지만 기본 그룹으로 apache만들지는 않습니다 . apache이는 Apache 서버가 새 파일에 액세스할 수 없음을 의미합니다. 이 문제를 해결하려면 apachebe tom의 기본 그룹을 로 설정하세요 useradd -g apache tom.

답변2

/var/www/html/my_project/SFTP 서버를 적절하게 구성하여 사용자 tom을 chroot 할 수 있습니다 . Apache에서의 액세스는 허용되며 Tom은 자신의 chroot 디렉터리에 들어갈 수 없습니다.

추가 도움을 제공하려면 사용 중인 SFTP 서버를 표시해야 합니다.

관련 정보