특정 디렉토리에만 액세스할 수 있는 sftp 사용자를 만드는 방법은 무엇입니까?

특정 디렉토리에만 액세스할 수 있는 sftp 사용자를 만드는 방법은 무엇입니까?

특정 폴더에 대한 액세스가 제한된 SFTP용 사용자를 만들고 싶습니다.

내 폴더 구조는 다음과 같습니다.

/var/www/site1/files/

/var/www/site2/files/

/var/www/site3/files/

filezila를 사용하여 웹사이트 파일을 업로드하기 위해서만 액세스할 수 있는 sftp user1을 만들고 싶고 /var/www/site1/files/다른 폴더는 볼 수 없습니다.

제한된 액세스 권한을 가진 user2의 경우에도 마찬가지입니다./var/www/site2/files/

제한된 액세스 권한을 가진 user3의 경우/var/www/site3/files/

답변1

당신은 그 일을 거의 따라했습니다.
가장 좋은 방법은 다음과 같이 하는 것입니다.

  1. /home에 다음 줄을 추가하여 3개의 디렉터리를 각각 디렉터리에 마운트합니다 /etc/fstab.

    /var/www/site1/files/ /home/site1/htdocs/ bind 0 0
    /var/www/site2/files/ /home/site2/htdocs/ bind 0 0
    /var/www/site3/files/ /home/site3/htdocs/ bind 0 0
    
  2. mount -a마운트를 즉시 시작하는 데 사용합니다 .

  3. 사용자 site1, site2, site3을 동일한 그룹(예: sftpusers 또는 sftponly)에 추가했는지 확인하세요. 다음 명령을 사용하여 사용자를 그룹에 추가할 수 있습니다.

    usermod -aG sftponly site1
    usermod -aG sftponly site2
    usermod -aG sftponly site3
    
  4. /home/{site1,site2,site3}다음을 사용하여 해당 사용자의 홈 디렉토리를 만듭니다 .

    usermod -d /home/site1 site1
    usermod -d /home/site2 site2
    usermod -d /home/site3 site3
    
  5. 에 다음을 추가합니다 /etc/ssh/sshd_config.

    Match group sftponly
          ChrootDirectory %h
          X11Forwarding no
          AllowTcpForwarding no
    
  6. 마지막으로 다음을 사용하여 SSH 서비스를 다시 시작합니다.

    service ssh restart
    

보다Digital Ocean에 대한 이 게시물자세한 내용은.

답변2

팔로우 후크리슈나 찰리스의 답변소유권과 권한을 조정해야 할 수도 있습니다.

예를 들어, 사용자 site1의 경우:

chown root:root /home/site1
chmod 755 /home/site1
cd /home/site1
chown site1:sftponly

관련 정보