管理
|
Ubuntu server 14.04サーバー管理Ubuntu server の管理に関するメモです. 目次コマンド
ランレベルUbuntu server のランレベルは,「/etc/init/rc-sysinit.conf」で決まっているようです(参考).このファイルの14行目の「env DEFAULT_RUNLEVEL=2」がランレベルの設定です. # Default runlevel, this may be overriden on the kernel command-line
# or by faking an old /etc/inittab entry
env DEFAULT_RUNLEVEL=2 14行目のランレベルの定義
Ubuntu server のデフォルトのランレベルは,2なんですねー.設定とは別に実際のシステムのランレベルの状態確認は,次のようにします. # runlevel
N 2
コマンド「runlevel」は,前と現在のシステムのランレベルを出力します.ランレベルの N は,システムのランレベルが無い(不明の)場合を表します.このアウトプットは,前のランレベルは無い(不明),現在は 2 ということです. サービス(デーモン)の管理service による起動他コマンド「service」を使うと,サービスの起動・停止などができます.しかし,サーバーPCの起動時には,このコマンドでの設定は無視されますので,後で述べるコマンド「sysv-rc-conf」を使います.ここで述べるコマンド「service」は,多くの場合,サービスをインストールしたときに起動や設定のテストで用いられます.もちろん,「sysv-rc-conf」でも,サービスの起動・停止は可能ですが,「service」の方が手軽です. コマンド「service」は,/etc/init.d/にある起動スクリプトを操作しています.したがって,この起動スクリプトを直接実行させても,service を使っても同じ結果が得られます.たとえば,次の通りです. # /etc/init.d/apache2 status
Apache2 is running (pid 907).
# service apache2 status
Apache2 is running (pid 907).
service は,以下のような引数をとります. # service スクリプト コマンド たとえば,Apache を再起動するためには,「service apache2 restart」とします.最初の引数は起動スクリプトであることに注意してください.サービス名ではありません.この起動スクリプトは,/etc/init.d/ を見れば分かります.それぞれのサービスに対応した起動スクリプトがあるはずです.コマンドは起動スクリプト毎に異なりますが,代表的な以下のコマンドは大体の起動スクリプトで使えます.
sysv-rc-conf による設定コマンド「sysv-rc-conf」を使うと,システム起動時のサービスの起動・停止の設定ができます.このコマンドは,通常はインストールされているはずですが,もしインストールされていなければ「apt-get install sysv-rc-conf」でインストールできます. 起動 # sysv-rc-conf
させると,以下のようなスクリーンが現れます.
┌ SysV Runlevel Config -: stop service =/+: start service h: help q: quit ┐
│ │
│ service 1 2 3 4 5 0 6 S │
│ ---------------------------------------------------------------------------- │
│ apache2 [ ] [X] [X] [X] [X] [ ] [ ] [ ] │
│ apparmor [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] │
│ apport [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │
│ atd [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │
│ bootlogd [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │
│ console-s$ [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │
│ cron [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │
│ dbus [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │
│ dmesg [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │
│ dns-clean [X] [X] [X] [X] [X] [ ] [ ] [ ] │
│ friendly-$ [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │
│ grub-comm$ [ ] [X] [X] [X] [X] [ ] [ ] [ ] │
│ halt [ ] [ ] [ ] [ ] [ ] [X] [ ] [ ] │
│ │
└------------------------------------------------------------------------------┘
┌------------------------------------------------------------------------------┐
│ Use the arrow keys or mouse to move around. ^n: next pg ^p: prev pg │
│ space: toggle service on / off │
└------------------------------------------------------------------------------┘
第一列にサービス名が表示されます.第一行目の(1, 2, 3, 4, 5, 0, 6, S)は,ランレベルを表しています.ランレベルについては,ウィッキペディアのランレベルを読んでください.[X]となっている部分が,対応したランレベルで,サービスが起動されます. 使用方法は,画面の上と下に書かれているとおりです. [-] キーでサービスを停止,[=] あるいは [+] キーで起動ができます.矢印キーで操作したいサービスの [ ] にカーソルを移動させて,それらのキーをタイプします.カーソルを移動させるランレベルはどこでもよいです.[h] キーを押すとヘルプが表示されます.ヘルプが表示を消して元に戻るには,再び [h] キーを押します. [r]キーを押すと,設定変更がされないでsysv-rc-conf は終了します.このキーは画面に説明がありませんが,ヘルプに書かれています.間違って設定して,元の状態が分からなくなったときにこのキーを使います. サービスの起動ランレベルを変更する場合は,矢印キーあるいはマウスでカーソルを対応するサービスのランレベルに移動させます.矢印キーで移動させた方が無難です.マウスで移動させると,設定が反転してしまいます.通常,サービスが多いので複数のページがあります.[control] + [n]キーで次ページ,[control] + [p] キーで前ページが表示されます.[スペース] キーで設定の on/off の変更ができます.sysv-rc-conf の停止は [q] キーです.このキーが押されると,設定が反映されます.反映しないで,元の状態で停止したい場合には,[r] キーを押します. 起動の確認pstree を使うとプロセスの状況を確認できます.プロセスの状況から,サービスの起動状況が分かります.起動とその結果は以下の通りです. # pstree
init─┬─apache2───10*[apache2]
├─atd
├─console-kit-dae───64*[{console-kit-da}]
├─cron
├─2*[dbus-daemon]
├─dbus-launch
├─gconfd-2
├─6*[getty]
├─irqbalance
├─mysqld───17*[{mysqld}]
├─nmbd
├─polkitd───{polkitd}
├─rsyslogd───3*[{rsyslogd}]
├─smbd───3*[smbd]
├─sshd─┬─sshd───sshd───bash───sudo───su───bash───pstree
│ └─sshd───sshd───bash───emacs
├─udevd───2*[udevd]
├─upstart-socket-
├─upstart-udev-br
├─vsftpd
└─winbindd───3*[winbindd]
プロセスの親子関係がツリー構造で表されています.また,「10*[apache2]」は10個のapache2のプロセスを表しています.pstreeの詳細については,ここら辺を参考にしてください. ポートの管理ファイアーウォールubunts server の場合,デフォルトでは全てのポートは閉じています.そして,サーバープログラムをインストールすると,自動的に使うポートが開放されるようです. ポートスキャンポートの状態を確認するには,ポートスキャンを最も効果的です.ここでは,nmap を使います.まずは,以下のコマンドで,nmap をインストールします. # apt-get install nmap nmap はいろいろな使い方があるようです.たとえば,「清く、正しい、nmapの使い方」に,詳しく書かれています.「清くなく,正しくない使い方」もあるようですが,使う場合には気をつけてください. サーバーの管理では,自分のポートの状態が重要です.自分のポートを調べるには,次のようにします. # nmap localhost -p 1-65535 ←ポートスキャンするコマンド Starting Nmap 5.21 ( http://nmap.org ) at 2012-06-17 20:36 JST Nmap scan report for localhost (127.0.0.1) Host is up (0.000028s latency). Not shown: 65527 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 80/tcp open http 139/tcp open netbios-ssn 445/tcp open microsoft-ds 3306/tcp open mysql 6010/tcp open unknown 6011/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 3.87 seconds よく分からないポートがあった場合,コマンド「fuser」をつかって,そのポートを利用しているプロセスIDを調べます.先の例では,ポートの6010とか6011が何に使われているのか分かりません.
# fuser -nv tcp 6010
6010/tcp: 1083
この結果から,プロセスIDの1083番がポートの6010を使っていることが分かります.プロセスの情報は「ps aux」で得ることができます.その結果,PID=1083は sshd が使っていることが判明しました.これは,ssh のX転送でつかわれるポートのようです. ルーターの設定自宅の WEB サーバーを外部に公開するためには,ルーターの設定が必要です.私の場合,NTTのルーター PR-S300NE で次のように設定しています.
サーバーの監視ユーザー/グループの管理ユーザー追加ユーザー「hogehoge」の追加は,次のようにします. $ sudo adduser hogehoge すると,パスワードなどが聞かれますので,適当にタイプします.新ユーザー「hogehoge」のパスワードは忘れると面倒なことになりますので,メモした方が良いでしょう.その後,フルネームやら部屋番号,電話番号の問い合わせがありますが,適当にタイプします.これらを入力しない場合は,そのまま [Enter] キーを押します. ユーザーの情報は,ファイル「/etc/passwd」に書かれます.Ubuntu の場合,ユーザー情報は以下の通りです. アカウント名:x:ユーザー ID:グループ ID:Full Name,Room Number,Work Phone,Home Phone,Other:ホームディレクトリー:ログインシェル 削除ユーザー「hogehoge」の削除は,次のようにします. $ sudo userdel hogehoge この場合,ユーザー「hogehoge」のアカウントは削除されますが,ホームディレクトリーやメールスプールは残ります.「sudo userdel -r hogehoge」とすると,これらを含めて削除できます. グループ共同作業をするときに,グループを使うと便利です. 追加例えば,グループ「project_A」は以下のようにして作成します. $ sudo groupadd project_A グループの情報は,ファイル「/etc/group」に書かれます. 管理グループの管理には,コマンド「gpasswd」を使います. $ sudo gpasswd オプション 引数 グループ名 このコマンドでは,以下のオプションを使うことができます.
グループのパスワードが設定されている状態で、 グループのメンバー以外のユーザーがコマンド「newgrp」でそのグループ ID になる場合,パスワードが求められます.正しいパスワードを入力すると,一時的にグループのメンバーになることができます.パスワードが設定されていない状態では,グループのメンバーのみ,そのグループの ID になることができます.要するに,グループパスワードが設定されていると,グループのメンバー以外もそのグループ ID が使えるようになります.これを防ぐためには,オプション「-R」あるいは「--restrict」を指定します. 削除グループ「project_A」の削除は,次のようにします. $ sudo groupdel project_A グループによる共有共同で作業を進める場合,ディレクトリーをグループで共有すると高率が上がります.ここでは,一般的なグループおよび共有するディレクトリーの作成方法を示します.
ページ作成情報参考資料
更新履歴
|