tnftpd
NetBSDのFTPサーバーであり、OS X FTPサーバーであったOS Xでこれを実行しようとしています。自分で作ってインストールしました。リンゴ原産地。残念ながら、root権限がないとサーバーを実行できないようです。これまでの私のアプローチは、root権限なしでサーバーを操作することです。
-P
特権ポートを使用していないことを確認するために、オプションでポート番号を変更してみました。ftpd.conf
私 とftpusers
。- 私もその
-r
オプションを試しました(ユーザーがログインした後はrootアクセスを許可しません)。
これらの試みはすべて失敗しました。
私の試みを説明するいくつかの例は次のとおりです。
$ 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
root権限なしでサーバーを実行する方法は?可能ですか?
答え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
ポートでない場合は、root以外のユーザーとして実行されます。
$ 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