OS X에서 루트 없이 tnftpd를 실행하는 방법은 무엇입니까?

OS X에서 루트 없이 tnftpd를 실행하는 방법은 무엇입니까?

tnftpdNetBSD의 FTP 서버이자 OS X FTP 서버였던 OS X에서 이것을 실행하려고 합니다 . 직접 만들어서 설치했어요사과 원산지. 안타깝게도 루트 권한이 없으면 서버를 실행할 수 없는 것 같습니다. 지금까지 내 접근 방식은 루트 권한 없이 서버를 작동시키는 것입니다.

  • -P권한 있는 포트를 사용하지 않는지 확인하기 위해 옵션을 통해 포트 번호를 변경해 보았습니다 .
  • 나는 ftpd.confftpusers.
  • 나는 또한 해당 -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
$ 

이 끔찍하고 끔찍한 크루거의 영향으로 이제 시작합니다... (이것은 ftpd10.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

관련 정보