web-dev-qa-db-ja.com

FilezillaでサーバーにログインするためのSFTPのセットアップ

AWSに既にいくつかのWordpress-esをインストールしたec2インスタンスがあります。もっと多くの人が自分のプロジェクトを処理できるように設定したいのですが、私がまだやりたいのであれば、ターミナルを使用してサーバーにアクセスすることもできます。

buntuで制限されたSFTPサーバーをセットアップする方法? などのチュートリアルに従っています。すべてのユーザーが自分のホームフォルダーにsftpを入力する方法を教えるだけであると考えました。また、手順ではaddUserが表示され続けますが、一部のユーザーは既に存在し、それらを削除すると問題が発生する可能性があります。

既存のユーザーにWordpressプロジェクトでSFTPを使用する許可を与えるにはどうすればよいですか?

すべてのWordpressプロジェクトが/var/www/で既にセットアップされているwww-data:www-dataの下に既にあるとしましょう。

このようなものを設定すると、本当に新しい。

助けてくれてありがとう。

2
Dora

ここでは、ユーザーのホームディレクトリへのssh/sftpが正常にでき、userおよび/var/www-:groupが所有するwww-data:www-dataの下のファイルとフォルダーを(ユーザーと一緒に)編集することを想定しています。所有権)。

ここでは、トピック / var/wwwでの作業中にSudoを使用しないようにする方法 が必要をカバーしていないことも想定しています。たとえば、/var/wwwの下のアクセス許可を変更する必要はありません。

このタスクを解決する最も簡単で明確な方法は、/var/www(または内部の特定のディレクトリ)をユーザーのホームディレクトリにマウントし、所有者をユーザーと:groupに変更することです。これは、ツールbindfsによって実現できます。

Sudo apt update && Sudo apt install bindfs

ここでは、/var/wwwと呼ばれ、ユーザーのホームディレクトリにあるディレクトリにwww/ディレクトリ全体をマウントします。

mkdir "$HOME/www"
Sudo bindfs -u $(id -u) -g $(id -g) --create-for-user=www-data --create-for-group=www-data /var/www "$HOME/www"
  • コマンドの置換$(id -u)および$(id -g)は、現在のユーザーのUIDとGIDを返します。

  • 別のユーザーに対して上記のコマンドを実行する場合は、$(id -u <user>)および$(id -g <user>)を使用します。 <user>は実際のユーザー名です。

  • bindfsで使用される引数の詳細については、マニュアルページ- man bindfs を参照してください。

  • ~/www$HOME/www)のマウントを解除する場合は、次のコマンドを使用します。

    Sudo fusermount -u ~/www
    

システムの起動時に/var/www~/wwwを自動的にマウントするには、/etc/fstabの下部に次の行を追加します。

bindfs#/var/www /home/<user>/www Fuse force-user=<uid>,force-group=<gid>,create-for-user=www-data,create-for-group=www-data 0 0
  • 注:<user>を実際のユーザー名に置き換える必要があります。また、<uid><gid><user>の実際のUIDとGIDに置き換える必要があります。それらは、コマンドid -u <user>id -u <user>で見つけることができます。
  • 結果を確認するには、システムを再起動するか実行します。

    Sudo mount -a    # maybe you should execute `Sudo fusermount -u ~/www` first 
    

これがどのように機能するかを示すアニメーションデモを次に示します。

enter image description here


更新:

私が見つけたこのアプローチの唯一の制限は、バインドディレクトリの所有権を変更すると、ソースディレクトリの所有権も変更されることです。たとえば、次のコマンドはお勧めできません。

chown -R $(id -u):$(id -g) $HOME/www

これを防ぐbindfsコマンドに適したオプションがあるかもしれませんが、現時点ではわかりません。

注:

3
pa4080