내 웹 서버(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-sftpserver
ftp 액세스에서 포트 21을 차단했습니다. 그러나 sftp는 여전히 포트 22에서 실행되고 있습니다. 직원은 sftp and ssh
단말기를 통해 로그인할 수 있습니다. 특정 사용자에 대한 콘솔 모드 작업을 방지하려면 웹 사이트 관리자와 루트 계정만이 모든 접근 권한을 가져야 합니다. 또한 사용자가 /FTPUSERS
GUI FTP 클라이언트(예: WinSCP)를 사용하여 디렉터리 외부를 탐색하는 것을 방지하려고 합니다 .
답변1
sshd_config를 확인하세요.
SFTP 내부 chroot를 설정하고 싶을 수도 있습니다.
/TFTPROOT는 chroot-dir이 됩니다.
이것은 tftp보다 더 안전합니다.
다음은 좋은 튜토리얼입니다:
답변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