第8章 システム管理を学ぶ
8.1 システム管理を理解する
su コマンド — rootユーザーとしてシェルを開く
sudo コマンド — 一般ユーザーがこのコマンドを通して他のコマンドを実行するときに、root権限が与えられる
8.2 グラフィカル管理ツールを使う
Cockpit はブラウザベースのシステム管理ツールだよ。
- Cockpit をインストールする
| |
- root ユーザーでログインして、Cockpit のソケットを有効にする
| |
- ブラウザでインターフェースを開く:
localhost:9090
8.2.1 system-config-* ツールを使う
| ツール | コマンド | 説明 |
|---|---|---|
| ドメイン名システム (DNS) | system-config-bind | コンピュータをDNSサーバーにするなら、ゾーン(Zone)を作成・設定する |
| HTTP | system-config-httpd | Apache Web サーバー |
| NFS | system-config-nfs | 他のNFSサービスを使っているコンピュータと共有するディレクトリを設定する |
| Rootパスワード | system-config-rootpassword | rootのパスワードを変更する |
| Samba NFS | system-config-samba | Windows共有フォルダを設定する |
| サービス | system-config-services | Fedoraの異なるランレベルでのサービスを表示・変更する |
| 認証 | authconfig-gtk | システムのユーザー認証方法を変更する |
| 日付と時刻 | system-config-date | 日付と時刻を設定したり、NTPサーバーと同期したりする |
| ファイアウォール | system-config-firewall | ファイアウォールを設定する |
| 言語 | system-config-language | 言語を選択する |
| 印刷 | system-config-printer | ローカルやネットワークプリンタを設定する |
| SELinux管理 | policycoreutils-gui | SELinuxの強制モードとデフォルトポリシーを設定する |
| ユーザーとグループ | system-config-users | ユーザーアカウント関連 |
8.3 rootユーザーアカウントを使う
8.3.1 シェル経由でrootユーザーになる
su コマンドを使えば root ユーザーになれるけど、このままだと環境変数は元のユーザーのままだよ。
su - を使えば、環境変数も root ユーザーのものに切り替わるんだ。
ちなみに、 su - ユーザー名 で指定したユーザーに切り替えることもできるよ。
8.3.2 sudo で管理権限を取得する
sudo で実行するコマンドは root 権限を持つよ。root のパスワードは必要なくて、そのユーザーに権限を与えておくだけでいいんだ。
sudo 権限を与える方法は以下の通り:
root ユーザーで
visudoコマンドを実行する次のような行を追加する
| |
これで yexca ユーザーに sudo 権限が与えられるよ。
- ファイルを保存して閉じる
8.4.2 設定ファイルを管理する
ほとんどの設定ファイルは /etc ディレクトリの中にテキスト形式で保存されているよ。主なものは以下の通り:
| ディレクトリ | 説明 |
|---|---|
| /etc/cron* | crond がスケジュール実行するプログラムを定義。cron.daily、cron.hourly など |
| /etc/cups | CUPS 印刷サービスの設定ファイル |
| /etc/default | いろいろなユーティリティのデフォルト値を設定するファイル |
| /etc/httpd | Apache Web サーバーの動作設定 |
| /etc/rc?.d | システムの状態(ランレベル)ごとに用意されたディレクトリ:rc0.d (停止)、rc1.d (シングルユーザー)、rc2.d (マルチユーザー)、rc3.d (マルチユーザー+ネットワーク)、rc4.d (ユーザー定義)、rc5.d (マルチユーザー+ネットワーク+GUIログイン)、rc6.d (再起動) |
| /etc/skel | 新しいユーザーを作成するとき、このディレクトリのファイルがユーザーのホームディレクトリにコピーされる |
| /etc/sysconfig | いろいろなサービスが作成・維持する重要なシステム設定ファイルが含まれる |
| /etc/systemd | systemd ユーティリティ(起動プロセスやシステムサービスの管理用)に関連するファイル |
| /etc/xinetd.d | xinetd デーモンが特定のポートで待ち受けるオンデマンドネットワークサービスを定義するファイル群 |
8.4.3 ログファイルと Systemd.Journal の管理
rsyslogd と systemd の journalctl コマンドを使うよ。
rsyslogd とその前身の syslogd は、ログファイルを /var/log ディレクトリに置くんだ。
8.5 その他の管理用アカウントを使う
例えば lp、apache、bin などのユーザーは、デフォルトではログインできないようになっているよ。
もしログインしたいなら、デフォルトのシェルを /sbin/nologin や /bin/false から /bin/bash などの実際のシェルに変更する必要があるんだ。
8.6 ハードウェアの確認と設定
8.6.1 ハードウェアを確認する
dmesg や journalctl コマンドを使って、Linux 起動時のハードウェア検出情報やドライバのロード情報を確認できるよ。
lspci コマンドで PCI バスと接続デバイスを、lsusb コマンドで USB デバイス情報を、lscpu でプロセッサ情報を表示できるんだ。
8.6.2 ローダブルモジュールの使用
正しく認識されないハードウェアを追加したいときは、手動でモジュールをロードする必要があるかもしれない。
- ロード可能なモジュールをリストアップする
lsmod コマンドを使うよ。特定のモジュールの詳細を知りたいときは modinfo -d モジュール名 コマンドを使おう。
- モジュールをロードする
modprobe コマンドを使って、コンパイルされて実行中のカーネルにインストールされているモジュールをロードできるよ。
- モジュールを削除する
rmmod コマンドを使うか、依存モジュールも一緒に削除したいときは modprobe -r を使おう。
8.7 小結
Linux では、セキュリティを確保するために、各サービス(http、git など)ごとに専用のユーザーを作成して、ログイン権限を制限するのがいいよ。
第9章 Linux のインストール
特になし
グラフィカルなインストールについては言うまでもないし、他のインストール方法については Arch Wiki のインストールガイド を参考にするといいよ。
僕も Arch Wiki よりはクオリティが低いけど、記事を書いてみた: 仮想マシンへの Arch Linux インストール記録 – yexca’Blog
他にも PXE 起動などのリモートインストールがあるけど、再現環境がないから今はちょっと理解しにくいかな。