web-dev-qa-db-ja.com

ホームディレクトリ(proftpd)内のFTPユーザーを「監獄」にする方法は?

「ftpusers-temp」グループに属する「ftp3」という名前のユーザーがいます。

そのユーザーの家はhome/FTP-shared/tempです

Proftpd.confには、次の2つのディレクティブがあります。

DefaultRoot /home/FTP-shared
DefaultRoot ~ ftpusers-temp

ユーザーftp3は「temp」ディレクトリしか表示できないと思っていました。しかし、何が起こるかというと、ログイン時に「temp」ディレクトリがデフォルトで選択されますが、ユーザーは戻ってFTPサーバーのルートにアクセスできます。

ユーザー「ftp3」が「/ home/FTP-shared/temp」に投獄され、「/ home/FTP-shared」にアクセスできないのではないですか?

4
pvieira

DefaultRoot行は、構成ファイルの最後にある必要があります。

4
user199239

問題は、複数のDefaultRoot(s)が指定されていることであると考えられます。 ProFTPdドキュメントとして 説明

2つのDefaultRootディレクティブが同じユーザーに適用される場合、ProFTPDは任意に1つを選択します(構成ファイルの解析方法に基づいて)

最初のDefaultRootディレクティブをコメントアウトして、問題の解決に役立つかどうかを確認できます。

3
avggeek

私はあなたの場合の最良の選択肢は彼らのディレクトリの刑務所のユーザーになると思います。あまり知られていない%u変数。 ドキュメント 海:

FTPセッションの処理中に、ログインしたユーザーの名前に置き換えられます。

2
DevAxeQuestion

編集

これは、ユーザーを自分のホームディレクトリに投獄する方法です。

  • これはProFTPdの標準機能です
  • /etc/proftpd/proftpd.confを開きます
  • #DefaultRootのコメントを外す〜
  • defaultRoot/home/someuser someuserに置き換えます

(上記の行を簡単に説明しましょう。DefaultRootは、jftp機能を有効にするためにproftpdによって使用されるパラメーターです。someuserは、chrootされるすべてのユーザーのプライマリグループです(デフォルトでは、これはユーザー名と同じです)。/ home/someuserは、ユーザーが投獄されるディレクトリです。)

  • 次に「/etc/init.d/proftpd restart」を実行します
1
eric