WordPress運用時のユーザー
WordPressを使用している場合、テーマやプラグインを導入したり削除したりするのはダッシュボードのプラグイン設定から出来るのですが、
多分FTPか、FTPSのアカウントが必要です。(少なくともWP2.8 MUでは)
自身が管理するサーバーの場合は、FTPサーバーは立てずに、操作やファイル転送等はSSH関連で全て行いたいところです。
(レンタルサーバー事業でもやるなら利便性のために必要かもしれませんが)
なので、ダッシュボードの削除機能は使わないとして、テーマやプラグインのインストールはSFTPを使うことにしています。
クライアントは、WinSCPとPuttyを使っていますが、
普通にApacheを導入した場合、httpdの実行ユーザー(2.2系の場合デフォルトはapache.apache)はでシェル実行は出来ないので、プラグインやテーマをインストールする場合は
・WinSCPでSSH用のユーザーでログインし、そのログインユーザーのホームディレクトリあたりにファイル転送して、
・その後PuttyでログインしてsuしてホームディレクトリからDocumentRootに移動し、
・chown apache.apache
しないといけないので面倒でしょうがない。
SSHログインユーザーをapacheグループに所属させるという手もありますが、
特に何も指定しない場合、ファイルパーミッションは755で、所有者しかファイルの更新削除が出来ないはず。
なので、操作予定のファイルのパーミッションを775に変更しないといけないが、それもどうかな~。
apacheユーザーでSSHログイン出来れば良いとは思うのですが、そういう運用は一般的なんだろうか。
「apache」ユーザーは、システムアカウントと言って普通はログインして作業するようなものではないのだが・・・。
とりあえずはSSHなので秘密鍵がない限り大丈夫だと思い、apacheユーザーでSSHログイン出来るように設定してみました。
apacheユーザーはhttpdが起動しているので、そもそもあるかと思いますが、
ホームディレクトリはないので作成してさらにssh用のディレクトリを作成します。
#mkdir -p /home/apache/.ssh #chown -R apache.apache /home/apache #chmod 700 /home/apache/.ssh/
ここで、SSHの鍵を生成するために、apacheユーザーにsuしてみると・・・。
#su apache
This account is currently not available.これはshellが有効でない場合に出るらしい。
(参考:Apacheの動作についての考察)
以下のように、Shellを有効にして再度suする。(ついでに、ホームディレクトリも変えてみる。)
#chsh apache apache のシェルを変更します。 新しいシェル [/sbin/nologin]: /bin/bash シェルを変更しました。 #usermod -d /home/apache apache #cp /etc/skel/.b* /home/apache #chown -R apache.apache /home/apache # su apache $
SSH鍵を生成します。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/apache/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/apache/.ssh/id_rsa. Your public key has been saved in /home/apache/.ssh/id_rsa.pub. The key fingerprint is: 23:9a:2d:06:0a:81:f2:25:1e:a8:09:cf:c0:4c:52:54 apache@xxx.xxx
出来た公開鍵「id_rsa.pub」を「authorized_keys」にリネームします。
$ mv id_rsa.pub authorized_keys $ chmod 600 authorized_keys
あとは一時的に秘密鍵のパーミッションを変更して、現在のSSHログインユーザーでダウンロードできるようにします。
これでログイン出来るようになったか試してみると、
No supported authentication methods available
と出てログイン出来ない。
Server側のログを見てみると
User apache from xxx.xxx.xxx.xxx not allowed because not listed in AllowUsers
sshのPermission denied
がすぐ見つかったので、sshd_configのAllowUsersにapacheを追記して再起動したら無事にWinSCPでログイン出来たようです。
これから様子見でどうするかを決めたいと思います。