특정 디렉터리를 제외하고 SFTP 사용자에 대한 "/opt/" 액세스를 거부합니다.

특정 디렉터리를 제외하고 SFTP 사용자에 대한 "/opt/" 액세스를 거부합니다.

내 웹 서버(Debian)를 SFTP 서버로 사용하여 특정 직원에게 액세스를 제공하고 싶습니다. 루트 아래의 dir 구조는 다음과 같습니다.

/FTPUSERS/UserName_1, ... /FTPUSERS/UserName_N.

내 웹사이트는 평소와 같이 아래에 있습니다 /opt/lampp/htdocs/SiteName. 저는 직원들이 /FTPUSERS어떤 수단을 사용하든 콘솔 SSH/GUI-FTPClients를 통해서만 이 디렉토리에 액세스 할 수 있기를 바랍니다 . chroot그들을 막는 올바른 방법이 아닌가?항해다른 디렉토리로? 아니면 그들을 막을 수 있는 다른 방법이 있나요? 말해주세요.

정보 LAMPP. /opt/lampp/htdocs/ 아래의 현재 사용자 및 그룹은 입니다 root and root.php.net디렉토리가 에 있어야 한다고 언급되어 있습니다 nobody and nobody. 이것이 권한을 설정하는 올바른 방법입니까?

편집하다:

내 운영체제는 Debian Lenny 3입니다. 현재 실행 중인 데몬은 openssh-sftpserverftp 액세스에서 포트 21을 차단했습니다. 그러나 sftp는 여전히 포트 22에서 실행되고 있습니다. 직원은 sftp and ssh단말기를 통해 로그인할 수 있습니다. 특정 사용자에 대한 콘솔 모드 작업을 방지하려면 웹 사이트 관리자와 루트 계정만이 모든 접근 권한을 가져야 합니다. 또한 사용자가 /FTPUSERSGUI FTP 클라이언트(예: WinSCP)를 사용하여 디렉터리 외부를 탐색하는 것을 방지하려고 합니다 .

답변1

sshd_config를 확인하세요.

SFTP 내부 chroot를 설정하고 싶을 수도 있습니다.

/TFTPROOT는 chroot-dir이 됩니다.

이것은 tftp보다 더 안전합니다.

다음은 좋은 튜토리얼입니다:

http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/

답변2

–d 옵션과 함께 useradd 명령을 사용하면 다음과 같이 사용자(예: ftpuser) 및 해당 홈 디렉터리(/homedir)를 추가할 수 있습니다.

useradd ftpuser -d /homedir
passwd ftpuser

새 비밀번호를 입력하라는 메시지가 표시됩니다.

Changing password for user <username>
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
  • /etc/passwd에서 이 사용자의 쉘을 /sbin/nologin으로 편집하십시오.

    vi /etc/passwd
    ftpuser:x:506:508::/homedir:/sbin/nologin
    
  • chroot_list 활성화:

    vi /etc/vsftpd/vsftpd.conf
    chroot_list_enable=YES
    (default follows)
    chroot_list_file=/etc/vsftpd.chroot_list
    
  • ftpuser그런 다음 파일에 사용자를 추가해야 합니다./etc/vsftpd.chroot_list

    vi /etc/vsftpd.chroot_list 
    ftpuser
    
  • vsftpd를 다시 시작하세요:

    /etc/init.d/vsftpd restart
    

관련 정보