サーバー運用をする時に、サーバー担当者だけが管理を行う状態では非常に非効率です。
モジュールやファイルの更新の度にプログラマーから渡されたファイルをいちいちアップロードするなんて、ありえない運用です。
デプロイ方法はチームによって色々あると思いますが、サーバーの状態を確認したり、特定のモジュールのソースコードを確認したり、細かなサーバーアクセスで、動かされるのは責任分担もできかねるとして、web担当者用のアカウントを1つ用意する事にしたので、その設定履歴を備忘録。
いろいろな権限設定方法がありますが、僕が手軽でよくやっているやり方なので、初心者サーバー管理者の人におすすめします。
Concept
web担当者用として1つのアカウントを追加。
鍵を使ってsshアクセスができる状態にする。
web作業だけ行えるようにする。
※複数人分追加したい場合は、下記の名称を変えて同じ作業をすればOK
上記コンセプトを実現するために、新規ユーザーを作ってNginxやApacheの権限に合わせる事で、web機能のみの権限アクセスができるようになります。
HowTo
1.サーバーにアカウントを追加
$ sudo useradd web
$ sudo passwd useradd
> *webアカウントのパスワードを入力
2."/etc/passwd"編集
$ sudo vi /etc/passwd
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
web:x:1003:1005::/home/web:/bin/sh
Apache、nginxをインストールしていれば、www-dataアカウントが存在すると思います。
この33:33がユーザー権限:グループ権限になるので、webユーザーの権限をwww-dataの権限にそのまま書き換えて下記のようになります。
web:x:33:33::/home/web:/bin/sh
3."/hoge/web"フォルダの設定
鍵のセットを行なって、アカウントフォルダーの"known_hosts"ファイルにセット(追記)します。
※鍵の作成方法は
こちらを参照して、pubファイルをサーバーにアップロードしておいてください。(/home/web/web.pub)
$ sudo mkdir /home/web/.ssh
$ cd /home/web/.ssh
$ cat ~/web.pub >> ~/.ssh/authorized_keys
4.ファイルとフォルダの権限を設定
$ sudo chmod 0700 /home/web/.ssh
$ sudo chmod 0600 /home/web/.ssh/authorized_keys
5.homeディレクトリのアカウント権限を設定
$ sudo chown -R www-data:www-data /home/web
最後に
これで、www-dataの権限で全て操作できるアカウントを作ることができ、sshログインしてファイルのアップロードや各種確認が行えます。
必要に応じてsudo権限を付与してあげると、/ver/logなどの情報アクセスも可能になります。
sudoの際には、www-dataのパスワードを聞かれる為、ここにパスワードを設定しておく必要があれば、下記コマンドを実行してください。
$ sudo passwd www-data
> password : ***
鍵を使ってsshアクセスが確認できると運用開始です。
Let's try !
0 件のコメント:
コメントを投稿