AWSに既にいくつかのWordpress-esをインストールしたec2インスタンスがあります。もっと多くの人が自分のプロジェクトを処理できるように設定したいのですが、私がまだやりたいのであれば、ターミナルを使用してサーバーにアクセスすることもできます。
buntuで制限されたSFTPサーバーをセットアップする方法? などのチュートリアルに従っています。すべてのユーザーが自分のホームフォルダーにsftp
を入力する方法を教えるだけであると考えました。また、手順ではaddUser
が表示され続けますが、一部のユーザーは既に存在し、それらを削除すると問題が発生する可能性があります。
既存のユーザーにWordpressプロジェクトでSFTPを使用する許可を与えるにはどうすればよいですか?
すべてのWordpressプロジェクトが/var/www/
で既にセットアップされているwww-data:www-data
の下に既にあるとしましょう。
このようなものを設定すると、本当に新しい。
助けてくれてありがとう。
ここでは、ユーザーのホームディレクトリへの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
これがどのように機能するかを示すアニメーションデモを次に示します。
更新:
私が見つけたこのアプローチの唯一の制限は、バインドディレクトリの所有権を変更すると、ソースディレクトリの所有権も変更されることです。たとえば、次のコマンドはお勧めできません。
chown -R $(id -u):$(id -g) $HOME/www
これを防ぐbindfs
コマンドに適したオプションがあるかもしれませんが、現時点ではわかりません。
注: