tnftpd
NetBSD의 FTP 서버이자 OS X FTP 서버였던 OS X에서 이것을 실행하려고 합니다 . 직접 만들어서 설치했어요사과 원산지. 안타깝게도 루트 권한이 없으면 서버를 실행할 수 없는 것 같습니다. 지금까지 내 접근 방식은 루트 권한 없이 서버를 작동시키는 것입니다.
-P
권한 있는 포트를 사용하지 않는지 확인하기 위해 옵션을 통해 포트 번호를 변경해 보았습니다 .- 나는
ftpd.conf
및ftpusers
. - 나는 또한 해당
-r
옵션을 시도했습니다(사용자가 로그인한 후에는 루트 액세스를 허용하지 않음).
이 모든 시도는 실패했습니다.
내 시도를 설명하는 몇 가지 예는 다음과 같습니다.
$ ftpd -lnD # exit code is 0, but `ps' shows no server running
$ ftpd -lnDr # supposed to drop root privileges, but same as above
$ # let's try running on a different port...
$ ftpd -lnDr -P 50001 # exit code still 0, but no dice
그러나 다음과 같은 작업을 시도하면(사용자 정의 구성이 없음):
$ sudo ftpd -lnD
Password:
$ ps aux | grep -i ftpd
root 21998 0.0 0.0 4298888 720 ?? Ss 10:41PM 0:00.00 ftpd -lnD
나는 문제 없다.
tnftpd
루트 권한 없이 서버를 실행하는 방법은 무엇입니까 ? 가능합니까?
답변1
매뉴얼 페이지에 따르면tnftpd(8)
... The server
uses the TCP protocol and listens at the port specified in the ``ftp''
service specification; see services(5).
스캔 결과 ftpd.conf(5)
수신 포트(데이터 포트와는 다름)를 조작할 수 있는 확실한 방법이 없으므로 파일을 수정할 수 있는지 살펴보겠습니다. services
이는 아마도 좋지 않은 생각일 것입니다.
$ sudo perl -i.oops -pe 's/^(ftp\s+21)/${1}21/' /etc/services
$ grep 2121 /etc/services
ftp 2121/udp # File Transfer [Control]
ftp 2121/tcp # File Transfer [Control]
scientia-ssdb 2121/udp # SCIENTIA-SSDB
scientia-ssdb 2121/tcp # SCIENTIA-SSDB
nupaper-ss 12121/tcp # NuPaper Session Service
nupaper-ss 12121/udp # NuPaper Session Service
$
이 끔찍하고 끔찍한 크루거의 영향으로 이제 시작합니다... (이것은 ftpd
10.11.6 시스템의 기본 설치에 있습니다)ftpd
/usr/libexec
$ /usr/libexec/ftpd -lnDr -P 50001
$
21
포트가 아닌 경우 루트가 아닌 사용자로 실행됩니다 .
$ pgrep -lf ftpd
35258 /usr/libexec/ftpd -lnDr -P 50001
$ lsof -P -p 35258 | grep 2121
ftpd 35258 jhqdoe 4u IPv4 0x817b7cd1effd8d7f 0t0 TCP *:2121 (LISTEN)
ftpd 35258 jhqdoe 5u IPv6 0x817b7cd1effa3107 0t0 TCP *:2121 (LISTEN)
$
이것이 작동하는지 모르겠습니다.FTP가 정말 필요한가요??
이 변경 사항을 취소하려면sudo mv /etc/services.oops /etc/services