Skip to content

Instantly share code, notes, and snippets.

@TakashiSasaki
Created October 28, 2024 00:18
Show Gist options
  • Save TakashiSasaki/14612e604c003fa17880e7394c98855e to your computer and use it in GitHub Desktop.
Save TakashiSasaki/14612e604c003fa17880e7394c98855e to your computer and use it in GitHub Desktop.
UCI (Unified Configuration Interface) コマンドの概要

UCI (Unified Configuration Interface) コマンドの概要

UCI (Unified Configuration Interface) は、主にOpenWrtやその派生システムで使用される設定管理ツールです。UCIは、システム全体の設定を統一されたインターフェースを通じて管理するためのもので、ネットワークやファイアウォールなど、多岐にわたる構成要素をシンプルなコマンドライン操作で扱うことができます。

UCIの主な特徴

  1. 統一された設定管理: UCIは、システム全体の設定(ネットワーク、ファイアウォール、DHCPなど)を一元管理します。これにより、複数の設定ファイルを個別に編集する手間を省き、CLIを介して効率的に管理できます。

  2. 設定ファイルの抽象化: UCIは、/etc/config/に保存されている設定ファイルを直接編集せずに、コマンドラインを通じて変更します。これにより、設定ファイルへの誤った編集のリスクが軽減され、システムの安定性を維持できます。

  3. 自動化とスクリプト化の容易さ: UCIコマンドはスクリプトで実行可能なため、大規模なネットワークやシステムの管理において自動化が容易になります。

  4. 原子性の確保: 設定変更は一括して行われ、途中でエラーが発生した場合でも一貫性を保つことができます。変更は、コミットするまでは適用されません。

UCIはOpenWrtに特化したツール

重要な点として、UCIはOpenWrtに特化したツールであり、他の一般的なLinuxディストリビューション(Ubuntu、Debian、Red Hatなど)では使用されません。一般的なディストリビューションでは、設定ファイルはそれぞれのサービスやアプリケーションに固有の形式で保存されており、設定管理にはUCIのような統一的なインターフェースは存在しません。

例えば、UbuntuやDebianでは、ネットワーク設定は/etc/network/interfacesまたは/etc/netplan/に、ファイアウォールの設定はufwで管理されることが多いです。Red Hat系では/etc/sysconfig/以下に各種設定ファイルが配置されますが、これらは手動で編集するか、個別のツール(例:nmclifirewalld)を使用して管理します。

基本的なUCIコマンド

  1. 設定の表示: 現在の設定を確認します。

    uci show <config>

    例: ネットワーク設定を表示

    uci show network
  2. 設定の取得: 特定の設定値を取得します。

    uci get <config>.<section>.<option>

    例: LANインターフェースのIPアドレスを取得

    uci get network.lan.ipaddr
  3. 設定の変更: 設定値を変更します。

    uci set <config>.<section>.<option>=<value>

    例: LANインターフェースのIPアドレスを変更

    uci set network.lan.ipaddr=192.168.1.100
  4. 設定の保存(コミット): 設定の変更を保存し、システムに反映させます。

    uci commit <config>

    例: ネットワーク設定を保存

    uci commit network
  5. 設定の削除: 特定の設定を削除します。

    uci delete <config>.<section>.<option>

    例: LANインターフェースのIPアドレス設定を削除

    uci delete network.lan.ipaddr
  6. 設定のリセット: 設定をデフォルトに戻します。

    uci revert <config>

具体例: dropbearの設定を変更

設定の確認

uci show dropbear

設定の変更(例: パスワード認証を無効化する)

uci set dropbear.@dropbear[0].PasswordAuth='off'
uci commit dropbear
/etc/init.d/dropbear restart

これにより、パスワード認証を無効化し、公開鍵認証のみにすることが可能です。

まとめ

UCIはOpenWrtに特化したツールであり、一般的なLinuxディストリビューションでは使用されないという点を理解することが重要です。OpenWrtのようなシステムでは、UCIを用いることでシステム全体の設定を効率的に管理でき、スクリプト化や自動化が容易です。UCIの統一されたインターフェースは、特にリモート管理や大規模なシステム管理において強力なツールとなります。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment