これらの実践的なヒントに従うことで、Linux 管理におけるよくある落とし穴を避けることができます。権限の扱い方、エラーのトラブルシューティング、システムを効果的に保護する方法を学びましょう。
1. 複数のプロパティを変更するコマンドの実行を避ける
多数のプロパティを変更するコマンドを実行するのではなく、トラブルシューティング中の問題に関連する特定のファイルやディレクトリに焦点を当てましょう。
例:
次の使用は避けてください:
chmod 777 everything
これによりセキュリティ上の問題が発生し、SSH やsudoなどのアプリケーションが壊れる可能性があります。代わりに、なぜこれらのコマンドを実行する必要があるのかを特定し、より安全な代替手段を検討してください。
2. root を日常的に使用しない
Windows の管理者アカウントとは異なり、Linux の root ユーザーはセキュリティ警告やチェックを回避します。sudoを使用して特権コマンドを実行する方が安全であり、追跡目的の監査証跡が得られます。
3. rmコマンドのフラグを理解する
-r(再帰)と-f(強制)フラグは、rmコマンドにおいて永続的です。これらを使用すると、確認なしにファイルやディレクトリを削除してしまう可能性があります。
例:
rm -rf /folder
このコマンドは、「本当によろしいですか?」と確認することなく、指定したフォルダとそのすべての内容を完全に削除します。
4. 権限拒否のトラブルシューティング
アクセスの問題をトラブルシューティングする際は、次の両方を考慮してください。DAC(任意アクセス制御)とMAC(強制アクセス制御)。
- DAC:ファイルの権限(例:
chmod,chown). - MAC:SELinux や AppArmor のようなツールは、追加のセキュリティ層を強制します。
例:
SELinux のログを確認します:
cat /var/log/audit/audit.log
5. ネットワーク:ソフトウェアファイアウォールを確認する
ネットワークの問題がハードウェアだけに関連していると決めつけないでください。iptablesや SELinux のようなソフトウェアファイアウォールが接続をブロックしている可能性があります。
例:
iptablesコマンドでルールを確認します:
iptables -L -v -n
ルールが指定されていない場合、SELinux が IP 層で設定されている可能性があります。
6. SSH の鍵ベース認証を使用する
SSH でパスワード認証を使用することは避けてください。パスワードはブルートフォース攻撃、特に辞書ベースの攻撃を受けやすくなります。
例外:
ディレクトリサービスのメンバーであるユーザーは、パスワードが必要になる場合があります。
7. 常にタイムゾーンを確認する
タイムスタンプを確認する際、サーバー時刻がローカル時刻または UTC であると決めつけないでください。次のコマンドを使用してタイムゾーンを確認してください。
例:
date
cat /etc/timezone
timedatectl
8. カーネルエラーを効果的にトラブルシューティングする
カーネルエラーをトラブルシューティングする際は、カーネルとソフトウェアのバージョンとともに、エラーメッセージをオンラインで検索してください。
例:
Bing や Google を使って次を検索します:
<error message> <kernel version>
9. 読み取り専用ファイルシステムへの対処
root であってもファイルを変更できない場合は、ファイルシステムが読み取り専用でマウントされていないか確認してください。
手順:
- 実行:
dmesgを実行し、ファイルシステムの整合性の問題を示すエラーを探します。 - ファイル属性を次で確認します:
lsattrでは、+i属性を持つファイルは不変であり、root でも変更できません。
10. 不確かな場合は推測しない
進め方が分からない場合は、推測しないでください!Linux の専門家に相談するか、ドキュメントを参照してください。推測すると問題が悪化し、復旧がさらに困難になる可能性があります。
まとめ
これらのよくある落とし穴を避けることで、Linux 管理スキルを向上させ、より安全で効率的な環境を確保できます。使用するコマンドを理解することを常に最優先にし、必要に応じて専門家に相談してください。