그래서 직장에서 프록시, DNS, FTP 등 일부 서비스를 Windows에서 Linux로 마이그레이션하기 위해 무료 소프트웨어를 사용해 달라는 요청을 받았습니다. GUI를 최대한 사용하지 말라고 해서 CentOS 7을 선택했습니다.
오랜 시간 고생한 끝에 CentOS 7을 성공적으로 설치하고 vsftpd를 동시에 실행했습니다. 관리자 계정을 만들었고 모든 것이 순조롭게 진행되었습니다.
실제 FTP에서 디렉토리 트리를 복사하는 데 문제가 있습니다. 나는 위의 FTP를 사용하여 30명의 고객에게 파일을 전송합니다. 모든 사람은 1부터 30까지 고객 ID로 번호가 지정된 폴더를 갖고 있으며 자신의 폴더와 하위 폴더에만 전체 액세스 권한을 갖습니다. 이러한 클라이언트 폴더는 각 클라이언트에 파일 업로드를 담당하는 영역에서 관리되는 클라이언트 폴더 아래에 중첩되어 있습니다. 이 영역에는 각 고객 ID 폴더에 대한 전체 액세스 권한이 있어야 합니다. 이제 다음과 같이 보입니다.
-FTP
-Clients
-01
-02
-##
-30
비슷한 작업을 수행하기 위해 다음 계정을 만들었습니다.
adduser uploaders -d /home/clients
adduser clientname01 -d /home/clients/01
adduser clientname02 -d /home/clients/02
adduser clientname## -d /home/clients/##
adduser clientname30 -d /home/clients/30
그리고 그들을 chroot에 가두어라.
chroot_local_user=YES
계정 에 로그인하면
uploaders
chroot에 잠겨 있지만 번호가 지정된 폴더에 액세스할 수 없습니다.어떤 클라이언트의 계정에 로그인할 때 저는 루트 디렉터리에 있고 거기에 있는 거의 모든 폴더에 액세스할 수 있습니다.
내가 달성하려는 목표를 달성하는 올바른 방법은 무엇입니까?
답변1
사용자의 홈 디렉터리 설정을 사용하는 경우 adduser
chroot할 필요가 없습니다. 사용자는 local_enable
이 옵션을 사용하여 홈 디렉터리에 자동으로 액세스할 수 있습니다.
파일이 다른 위치에 있으면 home
해당 위치로 변경하면 됩니다. 그들이 들어오고 싶어하지 않는 한 ssh
문제는 없을 것입니다.
파일에 다음이 포함되어 있는지 확인하세요 vsftpd.conf
.
anonymous_enable=NO
local_enable=YES
write_enable=YES
그리고 줄이 없습니다 chroot
. 사용자가 FTP를 통해 자신의 홈 디렉토리에 쓰는 것을 원하지 않는 경우에도 마찬가지입니다 write_enable
.NO