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
디렉토리를 소유하게 만들고 tom
Tom을 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/
참고: 생성된 모든 파일은 tom
Tom의 사용자와 해당 기본 그룹의 소유가 됩니다. 위의 예는 tom
그룹에 추가되지만 기본 그룹으로 apache
만들지는 않습니다 . apache
이는 Apache 서버가 새 파일에 액세스할 수 없음을 의미합니다. 이 문제를 해결하려면 apache
be tom
의 기본 그룹을 로 설정하세요 useradd -g apache tom
.
답변2
/var/www/html/my_project/
SFTP 서버를 적절하게 구성하여 사용자 tom을 chroot 할 수 있습니다 . Apache에서의 액세스는 허용되며 Tom은 자신의 chroot 디렉터리에 들어갈 수 없습니다.
추가 도움을 제공하려면 사용 중인 SFTP 서버를 표시해야 합니다.