터미널 액세스를 비활성화하지만 FTP는 유지합니다.

터미널 액세스를 비활성화하지만 FTP는 유지합니다.

저는 Raspberry Pi3와 VSFTPD를 사용하여 FTP를 통해 디렉터리를 공유하고 있는데, 이를 통해 카메라가 디렉터리에 연결하고 사진을 전송할 수 있습니다.

또한 FileZilla나 다른 도구를 사용하는 경우 전용 폴더 외부의 파일을 탐색할 수 없도록 간단한 사용자와 비밀번호를 만들고 디렉터리를 루트로 지정했습니다.

문제는 해당 사용자를 사용하여 터미널(모니터, 키보드 등, SSH 없음)을 통해 로그인하면 원하는 곳 어디든 자유롭게 갈 수 있다는 것입니다. 이런 일이 발생하지 않도록 하는 방법이 있습니까?
난 노력 했어:

usermod --expiredate 1
passwd -l
usermod -s /sbin/nologin

하지만 이렇게 하면 계정을 사용할 수 없게 됩니다.
Jail/chroot 최종 사용자를 검색하면 "ssh"에 대한 결과만 나타납니다.

어떤 도움이라도 대단히 감사하겠습니다.

편집하다

계정을 사용할 수 없다고 말하면 터미널을 통한 로그인을 차단하지만(내가 원하는 것임) FTP를 통한 연결도 차단한다는 의미입니다.

편집 2

요점은 1명의 사용자에 대해 모든 것(FTP 폴더 제외)을 비활성화하는 것입니다. 해당 사용자가 아무것도 할 필요가 없거나 원하지 않습니다.
다른 프로토콜 없이 FTP만 사용하여 모든/대부분의 Wi-Fi 카메라를 찾아야 하는데 FTP가 최선의 선택입니다.
SFTP 및 SSH가 비활성화되었습니다.

답변1

특정 사용자에 대해 SSH(& 포함) 로그인을 비활성화하려면 scp데몬을 추가하고 다시 시작하면 됩니다.sftpDenyUsers <name of the ftp-only user>/etc/ssh/sshd_configsshd

FTP 전용 계정을 사용하여 로컬로 로그인할 가능성은 남아 있지만 시스템이 안전한 위치에 있는 경우 FTP 전송 실패 문제를 해결하는 데 실제로 유용할 수 있습니다.


FTP 전용 사용자 계정을 만드는 전통적인 방법은 사용자의 쉘을 로 설정하거나 입력을 허용하지 않고 즉시 종료되는 유사한 프로그램을 설정하는 것입니다 /sbin/nologin./bin/false또한 프로그램을 나열하십시오./etc/shells.

비밀번호 확인 후 FTP 데몬이 수행하는 일반적인 확인은 "이 사용자가 ?에 나열된 쉘을 가지고 있습니까 /etc/shells?"입니다. 최신 시스템에서는 FTP 데몬 자체가 아닌 PAM 구성을 통해 이를 수행할 수 있습니다.

유효한 "아무 것도 하지 않음" 셸(= 에 나열됨)로 사용자를 구성하면 /etc/shells해당 계정은 FTP 사용에 유효하지만 실행하기 위해 셸이 필요한 모든 사용은 실패합니다. 왜냐하면 "아무 것도 하지 않음" 프로그램이 실행되기 때문입니다. 실제 쉘에서는 사용자의 입력을 받아들이지 않고 종료됩니다.

참고: 시스템에 시스템 암호 데이터베이스를 사용하고 셸 실행을 기반으로 하지 않는 다른 네트워크 서비스(예: IMAP 또는 POP3 메일 서버)가 있는 경우 "FTP 전용"을 명시적으로 거부하도록 해당 서비스를 구성해야 할 수도 있습니다. " 사용자.

관련 정보