Linuxの主要な設定ファイルの場所と内容まとめ|/etcディレクトリの重要ファイル一覧

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > Linuxの主要な設定ファイルの場所と内容まとめ|/etcディレクトリの重要ファイル一覧
「Linuxのトラブル対応で設定ファイルを触ろうとしたが、どこに何のファイルがあるかすぐ分からない」

Linuxに慣れていないうちは、設定ファイルの場所を毎回調べながら作業することになります。/etc 配下には数百のファイルが存在しますが、日常的な管理業務で触れるのはその一部です。

この記事では、Linuxサーバーの運用管理で頻繁に使う /etc 配下の重要な設定ファイルを目的別にまとめ、各ファイルの役割・記述形式・実際の確認コマンドを解説します。Rocky Linux 9 / RHEL 9 / Ubuntu 24.04 LTS で動作確認済みです。

【この記事でわかること】

・Linux設定ファイルはほぼすべて /etc 配下のテキストファイルに集約されている
・/etc/hosts・/etc/fstab・/etc/passwd など運用必須ファイルを網羅
・ネットワーク・ユーザー管理・起動サービスの設定ファイルを目的別に整理
・cat / less / grep で内容確認、vi / nano で編集する基本操作も解説


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

/etcディレクトリとは何か

/etc("et cetera" の略とも言われる)は、Linuxにおけるシステム全体の設定ファイルを格納するディレクトリです。FHS(Filesystem Hierarchy Standard)で定義されており、ほぼすべてのLinuxディストリビューションで同じ役割を持ちます。

形式:ほぼすべてがテキストファイル(人間が直接編集可能)
権限:参照は一般ユーザーも可能。編集はroot権限が必要
バックアップ:本番環境では変更前に必ずバックアップを取る習慣を持つこと

/etc 配下を変更した場合の影響範囲はファイルによって異なります。即時反映されるものと、サービス再起動・OS再起動が必要なものがあるため、各ファイルの挙動を把握することが重要です。

ネットワーク関連の設定ファイル

1. /etc/hosts — 静的な名前解決

/etc/hosts は DNS を使わずに、IPアドレスとホスト名を直接マッピングするファイルです。DNS よりも優先されるため、開発環境での名前解決や緊急時の DNS 代替として使います。

# /etc/hosts の確認 $ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.100 web01.example.com web01 192.168.1.101 db01.example.com db01

変更後は即時反映されます(サービス再起動不要)。

2. /etc/resolv.conf — DNSリゾルバの設定

/etc/resolv.conf は、名前解決に使う DNS サーバーと検索ドメインを指定します。

$ cat /etc/resolv.conf # Generated by NetworkManager search example.com nameserver 192.168.1.1 nameserver 8.8.8.8

注意:NetworkManager や systemd-resolved が管理している環境では、/etc/resolv.conf を直接編集しても再起動時に上書きされる場合があります。RHEL 9系では NetworkManager の設定から変更するのが正解です。

3. /etc/hostname — サーバーのホスト名

$ cat /etc/hostname web01.example.com # ホスト名の変更(再起動不要で即時反映) $ sudo hostnamectl set-hostname new-hostname.example.com

4. /etc/hosts.allow と /etc/hosts.deny — TCPラッパーのアクセス制御

古いシステムでは TCPラッパー(tcpd)によるアクセス制御が使われていました。現代の RHEL 9 / Rocky Linux 9 では firewalld に移行していますが、既存サーバーの保守でよく目にします。

$ cat /etc/hosts.allow # 192.168.1.0/24 からの SSH を許可 sshd: 192.168.1. $ cat /etc/hosts.deny # すべてのサービスをデフォルト拒否 ALL: ALL

ユーザー・グループ管理の設定ファイル

1. /etc/passwd — ユーザーアカウント情報

/etc/passwd は、システム上の全ユーザーの基本情報を管理するファイルです。

$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin nginx:x:987:982:Nginx web server:/var/lib/nginx:/sbin/nologin pakira:x:1000:1000:pakira:/home/pakira:/bin/bash # 書式: ユーザー名:パスワード:UID:GID:コメント:ホームディレクトリ:シェル # パスワードフィールドの "x" はシャドウパスワードを使用中であることを意味する

2. /etc/shadow — パスワードのシャドウファイル

パスワードの実体(ハッシュ値)と有効期限が格納されます。root のみが読み取り可能です。

# 読み取りには root 権限が必要 $ sudo cat /etc/shadow | grep pakira pakira:$6$rounds=500000$xxxx...:19450:0:99999:7::: # 書式: ユーザー名:ハッシュ:最終変更日:最小:最大:警告:不活性:有効期限:予約

3. /etc/group — グループ情報

$ cat /etc/group | grep -E "^(wheel|docker|pakira)" wheel:x:10:pakira docker:x:988:pakira pakira:x:1000:

4. /etc/sudoers — sudo権限の設定

/etc/sudoers は、一般ユーザーに sudo コマンドでroot権限を付与するための設定ファイルです。必ず visudo コマンドで編集してください。直接 vi で編集すると構文エラー時にログインできなくなるリスクがあります。

# visudo コマンドで編集(構文チェック付き) $ sudo visudo # wheel グループのメンバーに sudo を許可(RHEL 系のデフォルト) %wheel ALL=(ALL) ALL # パスワードなしで sudo を許可する例(セキュリティリスクに注意) # pakira ALL=(ALL) NOPASSWD: ALL

システム起動・サービス管理の設定ファイル

1. /etc/fstab — ファイルシステムのマウント設定

/etc/fstab は OS 起動時に自動マウントするファイルシステムを定義します。記述を誤ると起動不能になるため、変更前のバックアップが必須です。

$ cat /etc/fstab # /etc/fstab # device mountpoint fstype options dump pass UUID=a1b2c3d4-e5f6-7890-abcd-1234567890ab / xfs defaults 0 0 UUID=f1e2d3c4-b5a6-9870-dcba-0987654321fe /boot xfs defaults 0 1 /dev/sdb1 /data ext4 defaults,nofail 0 2 tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0 # 変更後のテスト(-aオプションでfstabを再読み込み、エラーがないか確認) $ sudo mount -a

2. /etc/systemd/system/ — systemdユニットファイル

RHEL 9 / Rocky Linux 9 では systemd が init システムです。カスタムサービスの定義は /etc/systemd/system/ 配下に配置します。

# カスタムサービスのユニットファイル例 $ cat /etc/systemd/system/myapp.service [Unit] Description=My Application After=network.target [Service] ExecStart=/usr/bin/myapp Restart=on-failure User=myuser [Install] WantedBy=multi-user.target # 変更後はデーモン再読み込みが必要 $ sudo systemctl daemon-reload $ sudo systemctl enable --now myapp

3. /etc/crontab と /etc/cron.d/ — スケジュール実行の設定

$ cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # 分 時 日 月 曜 ユーザー コマンド 0 2 * * * root /usr/local/bin/backup.sh # /etc/cron.d/ には個別のcronファイルを配置できる $ ls /etc/cron.d/ 0hourly sysstat

セキュリティ・認証関連の設定ファイル

1. /etc/ssh/sshd_config — SSHデーモンの設定

/etc/ssh/sshd_config はSSHサーバーの動作を定義します。本番環境では最低限以下の設定を確認・変更します。

$ grep -E "^(Port|PermitRootLogin|PasswordAuthentication|PubkeyAuthentication)" /etc/ssh/sshd_config Port 22 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes # 変更後はsshdを再起動して反映 $ sudo systemctl reload sshd

2. /etc/pam.d/ — PAM認証の設定

PAM(Pluggable Authentication Module)はLinuxの認証フレームワークです。パスワードポリシーや認証方式をサービスごとに細かく制御できます。

# SSH認証のPAM設定を確認 $ cat /etc/pam.d/sshd | head -20 #%PAM-1.0 auth required pam_sepermit.so auth substack password-auth auth include postlogin ...

3. /etc/selinux/config — SELinuxの設定

$ cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these three values: SELINUXTYPE=targeted # 現在の状態を確認 $ getenforce Enforcing

ログ・環境変数の設定ファイル

1. /etc/rsyslog.conf — syslogの設定

/etc/rsyslog.conf は、システムログの出力先とフィルタリングルールを定義します。

# 主要なログ出力先の確認 $ grep -v "^#\\|^$" /etc/rsyslog.conf | head -20 $ModLoad imuxsock $ModLoad imklog $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg :omusrmsg:*

2. /etc/environment と /etc/profile — 環境変数の設定

# /etc/environment はシェルに依存しないグローバル環境変数 $ cat /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" # /etc/profile はログインシェル起動時に読み込まれる # /etc/profile.d/*.sh に個別スクリプトを配置するのが現代の作法 $ ls /etc/profile.d/ bash_completion.sh colorls.sh less.sh

実務Tips:設定ファイルを安全に編集するポイント

1. 必ず変更前にバックアップを取る

# タイムスタンプ付きでバックアップ $ sudo cp /etc/fstab /etc/fstab.bak.$(date +%Y%m%d_%H%M%S) $ ls /etc/fstab* /etc/fstab /etc/fstab.bak.20260407_103000

2. 変更差分を確認してから適用する

# diff で変更箇所を確認 $ diff /etc/ssh/sshd_config.bak /etc/ssh/sshd_config < PasswordAuthentication yes --- > PasswordAuthentication no

3. 変更後はサービス再起動の前に構文チェックを行う

# sshd の構文チェック $ sudo sshd -t # nginx の構文チェック $ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # postfix の構文チェック $ sudo postfix check

本記事のまとめ

ファイル 用途 変更反映タイミング
/etc/hosts 静的な名前解決 即時
/etc/resolv.conf DNSサーバーの指定 即時(NMが上書きする場合あり)
/etc/hostname サーバーのホスト名 hostnamectlで即時
/etc/passwd ユーザーアカウント情報 即時
/etc/sudoers sudo権限の設定 即時(visudoで編集)
/etc/fstab ファイルシステムのマウント 再起動 or mount -a
/etc/ssh/sshd_config SSHサーバーの設定 systemctl reload sshd
/etc/selinux/config SELinuxの動作モード 再起動
/etc/rsyslog.conf syslogの出力先設定 systemctl restart rsyslog
/etc/crontab スケジュール実行の設定 即時(crondが自動再読み込み)
/etc 配下の設定ファイルはLinuxサーバーの根幹を管理しています。変更前のバックアップと構文チェックを徹底し、変更後は必ず動作確認を行う習慣が現場エンジニアには必要です。

関連記事として「LinuxのDNS設定の基本」や「Postfixでメールキューの状態を確認する方法」も参考にしてください。

Linuxサーバーの設定を体系的に学びませんか?

/etc 配下の設定ファイルを理解すると、Linuxサーバー管理の全体像が見えてきます。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。