web-dev-qa-db-ja.com

基本的なUbuntu FTPサーバー

Ubuntu Serverのインストール時に基本的なFTPサーバーをセットアップしたいと思います。私はVSFTPDで遊んでいますが、ディレクトリを作成してファイルをコピーできるようにするためにサーバーを取得するのに問題があります。ローカルユーザーを許可するようにシステムを設定しましたが、ディレクトリを作成するためのアクセス権が得られるという意味ではありません。これは、このFTPサーバーを適切に構成するために、Ubuntuサーバーのセットアップをよりよく理解する必要がある場合です。最終的な目標は、ローカルのdevフォルダーからファイルを展開のためにwwwフォルダーに移動できるようにすることです。ディレクトリも同様に移動できる必要があります。どんな助けも大歓迎です。

33

私の意見では、PureFTPDが最も簡単で使いやすいのでお勧めします。最初にインストールする必要があります:Sudo apt-get install pure-ftpdインストールが完了すると、自動的に起動します。デフォルトでは、PAM認証を使用します。つまり、システムの認証用にすでに存在するアカウントを使用します。行う必要があるのは、ホームディレクトリをwwwパスとしてユーザーアカウントを作成し、そのアカウントのパスワードを設定することだけです。その後、そのユーザー/パスの組み合わせで接続して、ファイルをアップロード/ダウンロードできるようになります。

このようなもの:

Sudo adduser ftpman --home /var/www/ --ingroup www-data

これはftpmanユーザーを作成し、Apacheが使用するwww-dataグループに彼を配置し、セットアップスクリプトの残りの部分を順を追って説明します。定義したら、作成したユーザー/グループの組み合わせに既に存在するエラーが発生した場合は、chmodを確認してください。

最後に、そのアカウントのSSHアクセスをロックダウンしたい場合:Sudo chsh -s /bin/false ftpmanを実行すると、そのユーザーのシェルがfalseに変更されます。 (ftpmanをftpユーザーに置き換えてください)

42
Marco Ceppi

私の意見では、SFTPがより良い方法です。ねえ、それは名前に「安全」という言葉があります、それはもっと良いに違いありません:)

SFTPはsshを使用してファイル転送を行います(基本的にFTP + TLSであるFTPSとは異なります)。つまり、ターゲットマシンにsshできる場合、同じ認証メカニズムを使用するため、ほとんど常にSFTPに接続できます。つまり、異なるサーバーデーモンをインストールおよび構成する必要はまったくありません(つまり、pureftpdまたはvsftpdはありません)。 /var/wwwのアクセス許可が正しく設定されている限り、これはおそらくSudo chmod g+w /var/www; Sudo usermod -g $USER -G www-data $USERの問題です-SFTPをすぐに使用できるはずです。

最近のほとんどのクライアントソフトウェアはSFTPを非常に喜んで実行します。また、開発サーバー上のシェルのscpを使用して、すべてのものをコピーできます(scp -Rはフォルダー全体をコピーし、非常に便利です)。別のステップに進み、公開キーを使用してログインを自動化することもできます。つまり、パスワードを入力する必要はありません。

10
Ben Williams

Vsftpdの使用を強くお勧めします。 Linuxで最も安全なFTPデーモンの1つです。他の多くには過去に弱点があり、FTPを安全な方法で実装するのは難しいようです。

vsftpdはインストール直後に起動します。 Ubuntuを使用すると、ローカルユーザーがログインできます。FTPクライアントを起動し、システムパスワードを使用して通常のユーザーとしてログインします(私の例ではlftpを使用しています)。

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp [email protected]:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

現在、何らかのファイルマネージャー(Nautilus、Shellなど)を使用して新しいディレクトリfooを作成し、FTPクライアントに戻ります。

ftp [email protected]:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

ディレクトリがあり、cdをそこに入れて使用することができます。これは、特別なユーザーがいる場合も同じです。そこでディレクトリを作成することもでき、それらはすぐにアクセスできます。ここでは、アクセス権を探すことが重要です。

5
qbi

私は最初から自分で書いたFTPサーバーをお勧めします: JetFTP 。インストールと使用は簡単ですextremely


インストール:

  • PPAをソフトウェアソースに追加して更新します。

    Sudo apt-add-repository ppa:george-edison55/george-edison
    
  • 次のコマンドを実行します。

    Sudo apt-get install jetftp
    
  • それでおしまい!

JetFTPの使用は簡単です。JetFTPが実行されているコンピューターのログイン名とパスワードを使用して、ポート8021に接続するだけです。

3
Nathan Osman

ftpを使用しないでください、これはユーザー名とパスワードを平文でサーバーに送信するため、本質的に安全ではないプロトコルです。 sftpの実装も同様に簡単で、接続のセキュリティにおいて大きな利点が得られます。

2
Stuart

VSFTPDのデフォルトのインストールでは、デフォルトで変更の作成/変更は許可されません。 /etc/vsftpd.confを編集し、次の行のコメントを解除する必要があります...

write_enable=YES

次に、それぞれのファイルとフォルダーに適切なファイルシステムのアクセス許可を構成する必要があります。

0
Simon East

FTPサーバーをセットアップするには、3つの異なる方法があります。

(1)匿名FTP:

ユーザーは、パスワードなしで匿名アカウントでのみサーバーにアクセスできます。もちろん、サーバー管理者は、ユーザーが海賊版の音楽/映画/ゲームなどの違法なファイルを入れないように、アップロードの制限を設定します。

(2)匿名アクセスとパスワード付きアカウントを持つユーザーの両方を使用したFTP:

この方法では、匿名アカウントユーザーとパスワードアカウントユーザーの両方がサーバーに入ることができます。すべてのファイルやフォルダを表示/変更/削除できるユーザールートを除き、指定されたディレクトリにのみアクセスできます。

(3)仮想ユーザー認証のmysqlサポート付きFTP:

この方法では、システム上に仮想ユーザー認証シェルアカウントを持っていないユーザーグループのみがサーバーにアクセスできます。ユーザー情報を保存する外部mysqlサーバーを使用します。

最初のオプション:匿名FTP

匿名FTPサーバーの作成を開始する前に、ftpというユーザーをシステムに追加する必要があります。また、ホームディレクトリも追加する必要があります。この手順は本当に簡単です。次のコマンドに従うだけです。

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

これを行うと、このアカウントのみがこのフォルダに書き込むことができます。さらに多くの変数を使用して、ftpサーバーの動作を指定できます。ここではいくつかの例を示します。

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

2番目のオプション: '' '匿名アカウントとパスワードアカウントの両方のユーザー' ''

同じサーバーに匿名アカウントユーザーとパスワードアカウントユーザーの両方を含めることができるようにするには、次の小さなガイドに従ってください。

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

3番目のオプション: '' 'Mysqlを使用する仮想ユーザー' ''

Mysqlをサポートするサーバーを作成するには、次の手順に従います。

こちらからPureFTPdのユーザーマネージャーをダウンロードしてインストールしてください http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

それを解凍し、すべてのコンテンツをWebサーバーのwwwディレクトリにアップロードしてから、ブラウザーにこのリンクlinkを書き込みます http://localhost/ftp/install.php インストーラーが要求するすべてのステップに従いますrge pureftpd-mysql.confをpureftpdユーザーマネージャーディレクトリにコピーして保存します。

できたこのリンクを使用して管理パネルにアクセス http:// localhost/ftp

サーバープロセスを起動する前に追加するオプション

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

Ftpサーバーアプリケーションについては、次を参照してください。
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html

0
Sajad Bahmani