0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#0236(2025/09/06)Linuxの/etcを使いこなす

Posted at

Linuxの/etcを使いこなす—システム設定の心臓部

「/etcとはOS全体の設定を、人間が読めるテキストで一元管理する“中枢の設定倉庫”である。」

/etcの役割:ホスト固有の設定を一元化

Linuxの設定は「配布元の既定値」と「ホスト固有の上書き」に分かれる。/etcは後者を置く場所だ。/usr(既定値)を編集せず、/etcで差分だけを管理するのが現代的な作法。起動時のサービス、ネットワーク、ユーザ・認証、ファイアウォール、ロケール、タイムゾーンなど、OSの“性格”を決める設定はここに集約される。

キーポイントは3つ。

  • ホスト固有:同じイメージを複数台に展開しても/etcの中身はマシンごとに異なる。
  • 人間可読:多くはプレーンテキストでdiff/Git管理に向く。
  • 優先順位:概ね/etc > /run > /usr。/usrの既定値を/etcが上書きし、一時値は/runに現れることがある。

名前の由来:etcは“et cetera”から育った

/etcは歴史的に“et cetera(その他いろいろ)”の略として誕生し、曖昧な置き場だった。現在は「管理者が編集するシステム設定の集約場所」として定着している。しばしば“Editable Text Configuration”といった後付け解釈も見かけるが公式ではない。

何が入る?主要ファイルとディレクトリ早見表

重複を避け、要点だけを表と短いカタログに凝縮する。

アカウント・認証(同階層の比較)

ファイル 役割 更新主体 機微度
/etc/passwd ユーザ基本情報(UID/ホーム/シェル) useradd等 低〜中
/etc/shadow パスワードハッシュ等 passwd
/etc/group グループ定義 groupadd等
/etc/gshadow グループの秘匿情報 ツール
/etc/sudoers 管理者権限委譲 visudo 中〜高
/etc/pam.d/ 認証モジュール設定 管理者 中〜高

名前解決・ホスト識別(同階層の比較)

ファイル/ディレクトリ 概要 典型的な編集 注意点
/etc/hostname ホスト名(1行) 永続名の設定 hostnamectl set-hostnameでも可
/etc/hosts 静的な名前解決表 局所名追加 DNS優先の設計に寄せる
/etc/resolv.conf DNSクライアント設定 直接編集/自動生成 NMやresolvedに上書きされうる
/etc/systemd/resolved.conf.d/ resolvedのdrop-in .conf追加 ファイル名序数で優先度管理

ディストリビューションの流儀(横比較)

項目 Debian/Ubuntu RHEL系 備考
パッケージリポジトリ /etc/apt/sources.list{,.d/} /etc/yum.repos.d/(dnf) 設定形式が異なる
ファイアウォール /etc/ufw/ /etc/firewalld/ ポリシー表現が異なる
ネットワーク管理 /etc/netplan/→systemd-networkd/NM 旧/etc/sysconfig→NM/networkd 近年はNM or networkd
サービス管理 /etc/systemd/ /etc/systemd/ systemdで収斂
Cron/Timer /etc/cron.* /etc/cron.* systemd timerへの移行が増加

用途別カタログ(重複なしの要点)

  • 起動とサービス:/etc/systemd/(unitと*.d/)、/etc/init.d/(旧来)
  • ネットワーク:/etc/systemd/network/、/etc/NetworkManager/、/etc/hosts、/etc/resolv.conf
  • ストレージ:/etc/fstab、/etc/crypttab、/etc/mdadm/mdadm.conf、/etc/lvm/
  • セキュリティ:/etc/ssh/sshd_config、/etc/selinux/、/etc/firewalld/、/etc/audit/
  • パッケージ:Deb系は/etc/apt/、RHEL系は/etc/yum.repos.d/
  • 時間とロケール:/etc/localtime(リンク)、/etc/locale.conf|.gen、/etc/timezone(Deb系)

systemd時代の優先順位とdrop-in

unitの既定値は/usr/lib/systemd/system/にあり、管理者の上書きは/etc/systemd/system/に置く。丸ごと複製せず、name.service.d/override.confdrop-inで差分だけを書くのが流儀。短期の切替えはsystemctl edit --runtimeで/run配下に生成できる。優先度は概ね/etc > /run > /usrで、drop-inの番号(10-*.conf等)が若いほど早く読み込まれる。

壊さない編集運用の要点

  • バックアップcp -a file{,.bak-YYYYmmdd}。チーム運用はetckeeperでGit管理。
  • 構文検証sshd -tnginx -tvisudo等の専用チェッカーを使ってから反映。
  • 最小差分.d/のdrop-inや/etc/default/の環境ファイルで上書き。元ファイルを直接改変しない。
  • 権限と秘匿:/etc/shadowや秘密鍵は600/root所有。誤ってVCSに流出させない。
  • ドキュメント化:コメントに意図・チケット番号・影響範囲を残す。

ありがちな落とし穴とデバッグの筋道

  • resolv.confが勝手に変わる:NetworkManagerやsystemd-resolvedの所管。どちらが管理しているかを確認し、/etc側の設定かdrop-inで固定。
  • fstabのtypoでブート不能nofailx-systemd.automountで復旧余地を作る。必要なら緊急シェルから修正。
  • sshd再起動で締め出しsshd -tで構文検証→systemctl reloadから試し、既存セッションを維持したまま切替え。
  • 優先度の誤解/etc > /run > /usr、drop-in番号、unit間のBefore=/After=Conflicts=を総合判断。

まとめ:/etcは“差分の金庫”

/etcは配布物の既定値に対する差分を置き、ホスト固有のふるまいを決める金庫だ。ポイントは「優先順位」「最小差分」「検証とバックアップ」。この三点を守れば、壊しにくく再現性の高い設定運用が実現できる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?