usbguardのマニュアルを読む会

usbguardのドキュメントを読みます。
## 0.0 環境

Vietual Box 6.1.24
Rocky 8.5
usbguard-1.0.0-8

## 1.0 インストール
```terminal:インストール
# dnf -y install usbguard
```

## 1.1 man 1 usbguard
```terminal:概要1
NAME
       usbguard - USBGuard command-line interface
```
>usbguard - USBGuard コマンドラインインターフェース
<br>

```terminal:サブコマンド一覧
SYNOPSIS
       usbguard [OPTIONS] <subcommand> [SUBCOMMAND-OPTIONS] ...

       usbguard get-parameter name

       usbguard set-parameter name value

       usbguard list-devices

       usbguard allow-device id | rule | partial-rule

       usbguard block-device id | rule | partial-rule

       usbguard reject-device id | rule | partial-rule

       usbguard list-rules

       usbguard append-rule rule

       usbguard remove-rule id

       usbguard generate-policy

       usbguard watch

       usbguard read-descriptor file

       usbguard add-user name

       usbguard remove-user name
```
<br>

```terminal:説明
DESCRIPTION
       The usbguard command provides a command-line interface (CLI) to a running usbguard-daemon(8) instance. It also provides a tool for generating initial USBGuard policies based on
       USB devices connected to the system.
```
>usbguard コマンドは、実行中の usbguard-daemon(8) インスタンスへのコマンドラインインタフェース (CLI) を提供します。<br>
また、システムに接続された USB デバイスに基づく初期 USBGuard ポリシーを生成するためのツールも提供します。

```terminal:サブコマンド「get-parameter」
get-parameter [OPTIONS] name
       Get the value of a runtime parameter. Parameter name is one of InsertedDevicePolicy and ImplicitPolicyTarget.

       Available options:

       -h, --help
           Show help.
```
>ランタイムパラメータの値を取得する。パラメータ名は InsertedDevicePolicy および ImplicitPolicyTarget のいずれかである。<br>
使用可能なオプション：
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「set-parameter」
   set-parameter [OPTIONS] name value
       Set the value of a runtime parameter. Parameter name is one of InsertedDevicePolicy and ImplicitPolicyTarget.

       Available options:

       -v, --verbose
           Print the previous and new attribute value.

       -h, --help
           Show help.
```
>ランタイムパラメータの値を設定する。パラメータ名は、InsertedDevicePolicy および ImplicitPolicyTarget のいずれかとする。<br>
使用可能なオプション：
　-v, --verbose
　　前の属性値と新しい属性値を表示する。
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「list-devices」
   list-devices [OPTIONS]
       List all USB devices recognized by the USBGuard daemon.

       Available options:

       -a, --allowed
           List allowed devices.

       -b, --blocked
           List blocked devices.

       -h, --help
           Show help.
```
>USBGuardデーモンが認識するすべてのUSBデバイスをリストアップします。<br>
使用可能なオプション：
　-a, --allowed
　　許可されたデバイスをリストアップします。
　-b, --blocked
　　拒否されたデバイスをリストアップします。
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「allow-device」
   allow-device [OPTIONS] < id | rule | partial-rule >
       Authorize a device to interact with the system. The device can be identified by either a device id, rule or partial-rule (rule without target). Both rule and partial-rule can be
       used to allow multiple devices at once. Note that id refers to the internal device-rule ID (the very first number of the list-devices command output) rather than the device’s ID
       attribute.

       Available options:

       -p, --permanent
           Make the decision permanent. A device specific allow rule will be appended to the current policy.

       -h, --help
           Show help.
```
>デバイスがシステムと相互作用することを許可する。<>
デバイスは、デバイスID、ルール、パーシャルルール（ターゲットのないルール）のいずれかによって識別される。
ruleとpartial-ruleはいずれも、複数のデバイスを一度に許可するために使用することができます。
idは、デバイスのID属性ではなく、内部のデバイスルールID（list-devicesコマンドの出力の一番最初の数字）を指すことに注意してください。<br>
使用可能なオプション：
　-p, --permanent
　　決定を恒久化する。デバイス固有の許可ルールが、現在のポリシーに追加されます。
　-h, --help
　　ヘルプを表示　
<br>

```terminal:サブコマンド「block-device」
   block-device [OPTIONS] < id | rule | partial-rule >
       Deauthorize a device. The device can be identified by either a device id, rule or partial-rule (rule without target). Both rule and partial-rule can be used to block multiple
       devices at once. Note that id refers to the internal device-rule ID (the very first number of the list-devices command output) rather than the device’s ID attribute.

       Available options:

       -p, --permanent
           Make the decision permanent. A device specific block rule will be appended to the current policy.

       -h, --help
           Show help.
```
>デバイスの認証を解除する。
デバイスは、デバイスID、ルール、パーシャルルール（ターゲットのないルール）のいずれかによって識別される。
ruleとpartial-ruleはいずれも、複数のデバイスを一度に拒否するために使用することができます。
idは、デバイスのID属性ではなく、内部のデバイスルールID（list-devicesコマンドの出力の一番最初の数字）を指すことに注意してください。<br>
使用可能なオプション：
　-p, --permanent
　　決定を恒久化する。デバイス固有の拒否ルールが、現在のポリシーに追加されます。
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「reject-device」
   reject-device [OPTIONS] < id | rule | partial-rule >
       Deauthorize and remove a device. The device can be identified by either a device id, rule or partial-rule (rule without target). Both rule and partial-rule can be used to reject
       multiple devices at once. Note that id refers to the internal device-rule ID (the very first number of the list-devices command output) rather than the device’s ID attribute.

       Available options:

       -p, --permanent
           Make the decision permanent. A device specific reject rule will be appended to the current policy.

       -h, --help
           Show help.
```
>デバイスを認証解除して削除します。
ruleとpartial-ruleはいずれも、複数のデバイスを一度に拒否するために使用することができます。
idは、デバイスのID属性ではなく、内部のデバイスルールID（list-devicesコマンドの出力の一番最初の数字）を指すことに注意してください。<br>
使用可能なオプション：
　-p, --permanent
　　決定を恒久化する。デバイス固有の拒否ルールが、現在のポリシーに追加されます。
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「list-rules」
   list-rules [OPTIONS]
       List the rule set (policy) used by the USBGuard daemon.

       Available options:

       -d, --show-devices
           Show all devices which are affected by the specific rule.

       -l, --label label
           Only show rules having a specific label.

       -h, --help
           Show help.
```
>USBGuardデーモンが使用するルールセット（ポリシー）を一覧表示します。<br>
使用可能なオプション：
　-d, --show-devices
　　特定のルールの影響を受けるすべてのデバイスを表示します。
　-l, --label label
　　特定のラベルを持つルールのみを表示します。
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「append-rule」
   append-rule [OPTIONS] rule
       Append the rule to the current rule set.

       Available options:

       -a, --after id
           Append the new rule after a rule with the specified rule id.

       -t, --temporary
           Make the decision temporary. The rule policy file will not be updated.

       -h, --help
           Show help.
```
>ルールを現在のルールセットに追加します。<br>
使用可能なオプション：
　-a, --after id
　　指定されたルール ID を持つルールの後に新しいルールを追加する。
　-t, --temporary
　　一時的に決定する。ルール・ポリシー・ファイルは更新されません。
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「remove-rule」
   remove-rule [OPTIONS] id
       Remove a rule identified by the rule id from the rule set.

       Available options:

       -h, --help
           Show help.
```
>ルール ID で識別されるルールをルールセットから削除する。<br>
使用可能なオプション：
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「generate-policy」
   generate-policy [OPTIONS]
       Generate a rule set (policy) which authorizes the currently connected USB devices.

       Available options:

       -p, --with-ports
           Generate port specific rules for all devices. By default, port specific rules are generated only for devices which do not export an iSerial value.

       -P, --no-ports-sn
           Don’t generate port specific rules for devices without an iSerial value. Without this option, the tool will add a via-port attribute to any device that doesn’t provide a
           serial number. This is a security measure to limit devices that cannot be uniquely identified to connect only via a specific port. This makes it harder to bypass the policy
           since the real device will occupy the allowed USB port most of the time.

       -d, --devpath devpath
           Only generate a rule for the device at the specified sub path of /sys.

       -t, --target target
           Generate an explicit "catch all" rule with the specified target. The target can be one of the following values: allow, block, reject

       -X, --no-hashes
           Don’t generate a hash attribute for each device.

       -H, --hash-only
           Generate a hash-only policy.

       -L, --ldif
           Generate a ldif policy for LDAP.

       -b, --usbguardbase base
           Generate a ldif policy for LDAP with this base. This option is required when --ldif was specified.

       -o, --objectclass objectclass
           Generate a ldif policy for LDAP with this objectClass.

       -n, --name-prefix prefix
           Generate a ldif policy for LDAP with this name prefix.

       -h, --help
           Show help.
```
>現在接続されているUSB機器を認証するルールセット（ポリシー）を生成する。<br>
使用可能なオプション：
　-p, --with-ports
　　すべてのデバイスに対してポート固有のルールを生成します。デフォルトでは、ポート固有のルールは、iSerial値をエクスポートしないデバイスに対してのみ生成されます。
　-P, --no-ports-sn
　　iSerial値のないデバイスに対してポート固有のルールを生成しない。このオプションがない場合、ツールはシリアル番号を提供しないすべてのデバイスにvia-port属性を追加します。
　　これは、一意に識別できないデバイスが特定のポートを介してのみ接続するように制限するためのセキュリティ対策です。
　　これにより、実際のデバイスがほとんどの時間、許可されたUSBポートを使用するため、ポリシーを回避することが難しくなります。
　-d, --devpath devpath
　　指定された/sysのサブパスにあるデバイスのルールのみを生成します。
　-t, --target target
　　指定されたターゲットを持つ明示的な "キャッチオール" 規則を生成する。
　　ターゲットには、allow、block、reject のいずれかを指定することができる。　　
　-X, --no-hashes
　　デバイスごとにハッシュ属性を生成しない。
　-H, --hash-only
　　ハッシュオンリーポリシーを生成する。
　-L, --ldif
　　LDAP用のldifポリシーを生成します。
　-b, --usbguardbase base
　　このベースで LDAP 用の ldif ポリシーを生成します。
　　このオプションは --ldif が指定されたときに必要です。
　-o, --objectclass objectclass
　　この objectClass を持つ LDAP の ldif ポリシーを生成する。
　-n, --name-prefix prefix
　　この名前のプレフィックスを持つLDAP用のldifポリシーを生成します。
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「watch」
   watch [OPTIONS]
       Watch the IPC interface events and print them to stdout.

       Available options:

       -w, --wait
           Wait for IPC connection to become available.

       -o, --once
           Wait only when starting, if needed. Exit when the connection is lost.

       -e, --exec path
           Run an executable file located at path for every event. Pass event data to the process via environment variables.

       -h, --help
           Show help.
```
>IPCインタフェースのイベントを監視し、標準出力に表示する。<br>
使用可能なオプション：
　-w, --wait
　　IPC接続が可能になるのを待ちます。
　-o, --once
　　必要に応じて、起動時のみ待機する。接続が切れたときに終了する。
　-h, --help
　　ヘルプを表示
<>br

```terminal:サブコマンド「read-descriptor」
   read-descriptor [OPTIONS] file
       Read a USB descriptor from a file and print it in human-readable form.

       Available options:

       -h, --help
           Show help.
```
>ファイルからUSBディスクリプタを読み込んで、人間が読める形でプリントする。<br>
使用可能なオプション：
　-h, --help
　　ヘルプを表示
<br>

```terminal:サブコマンド「add-user」
   add-user name [OPTIONS]
       Create an IPC access control file allowing the user/group identified by name to use the USBGuard IPC bus. The change takes effect only after restarting the usbguard-daemon(8)
       instance.

       Available options:

       -u, --user
           The specified name represents a username or UID (default).

       -g, --group
           The specified name represents a groupname or GID.

       -p, --policy privileges
           Policy related privileges.

       -d, --devices privileges
           Device related privileges.

       -e, --exceptions privileges
           Exceptions related privileges.

       -P, --parameters privileges
           Run-time parameter related privileges.

       -h, --help
           Show help.

       Privileges:

       The privileges are expected to be in the form of a list separated by a colon:

               $ sudo usbguard add-user joe --devices=listen,modify

       Consult the usbguard-daemon.conf(5) man-page for a detailed list of available privileges in each section. You can also use ALL instead of privileges to automatically assign all
       relevant privileges to a given section.
```
>名前で特定されるユーザ/グループが USBGuard IPC バスを使用することを許可する IPC アクセス制御ファイルを作成します。
この変更は、usbguard-daemon(8) のインスタンスを再起動した後にのみ有効になります。<br>
使用可能なオプション：
　-u, --user
　　指定された名前は、ユーザー名またはUID（デフォルト）を表します。
　-g, --group
　　指定された名前は、グループ名またはGIDを表します。
　-p, --policy privileges
　　ポリシーに関連する権限。
　-d, --devices privileges
　　デバイス関連の権限です。
　-e, --exceptions privileges
　　例外的な関連特権。
　-P, --parameters privileges
　　ランタイムパラメータ関連の権限です。
　-h, --help
　　ヘルプを表示<br>
Privileges:
　特権は、コロンで区切られたリストの形式であることが期待される。
　　$ sudo usbguard add-user joe --devices=listen,modify
　各セクションで利用可能な特権の詳細なリストについては、usbguard-daemon.conf(5) man ページを参照してください。
　特権の代わりに ALL を使って、与えられたセクションに関連するすべての特権を自動的に割り当てることもできます。
<br>

```terminal:サブコマンド「remove-user」
   remove-user name [OPTIONS]
       Remove an IPC access control file associated with the user/group identified by name. The change takes effect only after restarting the usbguard-daemon(8) instance.

       Available options:

       -u, --user
           The specified name represents a username or UID (default).

       -g, --group
           The specified name represents a groupname or GID.

       -h, --help
           Show help.
```
>name で識別されるユーザ/グループに関連付けられた IPC アクセス制御ファイルを削除します。
この変更は、usbguard-daemon(8) のインスタンスを再起動した後にのみ有効となります。<br>
使用可能なオプション：
　-u, --user
　　指定された名前は、ユーザー名またはUID（デフォルト）を表します。
　-g, --group
　　指定された名前は、グループ名またはGIDを表します。
　-h, --help
　　ヘルプを表示
<br>

```terminal:misc
EXAMPLES
       Generating an initial policy:

       Allow device(s):

SEE ALSO
       usbguard-daemon(8), usbguard-daemon.conf(5), usbguard-rules.conf(5)
```


## 1.2 /etc/usbguard/usbguard-daemon.conf
```terminal:パラメータ「RuleFile」
#
# Rule set file path.
#
# The USBGuard daemon will use this file to load the policy
# rule set from it and to write new rules received via the
# IPC interface.
#
# RuleFile=/path/to/rules.conf
#
RuleFile=/etc/usbguard/rules.conf
```
>ルールセットファイルパス
USBGuardデーモンはこのファイルを使用して、そこからポリシーのルールセットをロードし、IPCインタフェース経由で受け取った新しいルールを書き込むことになります。
<br>

```terminal:パラメータ「RuleFolder」
#
# Rule set folder path.
#
# The USBGuard daemon will use this folder to load the policy
# rule set from it and to write new rules received via the
# IPC interface. Usually, we set the option to
# /etc/usbguard/rules.d/. The USBGuard daemon is supposed to
# behave like any other standard Linux daemon therefore it
# loads rule files in alpha-numeric order. File names inside
# RuleFolder directory should start with a two-digit number
# prefix indicating the position, in which the rules are
# scanned by the daemon.
#
# RuleFolder=/path/to/rulesfolder/
#
RuleFolder=/etc/usbguard/rules.d/
```
>ルールセットフォルダパス
USBGuardデーモンはこのフォルダを使用して、そこからポリシーのルールセットをロードし、IPCインタフェース経由で受け取った新しいルールを書き込みます。
通常、/etc/usbguard/rules.d/に設定します。
USBGuardデーモンは、他の標準的なLinuxデーモンと同様に動作することが想定されているため、ルールファイルをアルファベット順に読み込みます。
RuleFolderディレクトリ内のファイル名は、デーモンによってスキャンされるルールの位置を示す2桁の数字の接頭辞で始まる必要があります。
<br>

```terminal:パラメータ「ImplicitPolicyTarget」
#
# Implicit policy target.
#
# How to treat devices that don't match any rule in the
# policy. One of:
#
# * allow  - authorize the device
# * block  - block the device
# * reject - remove the device
#
ImplicitPolicyTarget=block
```
>暗黙のポリシーターゲット
どのルールにも一致しないデバイスをどのように扱うか。以下から選択。
　allow  - デバイスを許可
　block  - デバイスを拒否
　reject - デバイスを削除
<br>

```terminal:パラメータ「PresentDevicePolicy」
#
# Present device policy.
#
# How to treat devices that are already connected when the
# daemon starts. One of:
#
# * allow        - authorize every present device
# * block        - deauthorize every present device
# * reject       - remove every present device
# * keep         - just sync the internal state and leave it
# * apply-policy - evaluate the ruleset for every present
#                  device
#
PresentDevicePolicy=apply-policy
```
>接続済デバイスポリシー
デーモン起動時に既に接続されているデバイスをどのように扱うか。以下から選択。
　allow        - 全てのデバイスを許可
　block        - 全てのデバイスを拒否
　reject       - 全てのデバイスを削除
　keep         - 接続状況をデーモンと同期し放置
　apply-policy - 全てのデバイスにルールを適用
<br>

```terminal:パラメータ「PresentControllerPolicy」
#
# Present controller policy.
#
# How to treat USB controllers that are already connected
# when the daemon starts. One of:
#
# * allow        - authorize every present device
# * block        - deauthorize every present device
# * reject       - remove every present device
# * keep         - just sync the internal state and leave it
# * apply-policy - evaluate the ruleset for every present
#                  device
#
PresentControllerPolicy=keep
```
>接続済コントローラポリシー
デーモン起動時に既に接続されているUSBコントローラをどのように扱うか。以下から選択。
　allow        - 全てのデバイスを許可
　block        - 全てのデバイスを拒否
　reject       - 全てのデバイスを削除
　keep         - 接続状況をデーモンと同期し放置
　apply-policy - 全てのデバイスにルールを適用
>> USBコントローラ：ホスト側のUSBコネクタ
<br>

```terminal:パラメータ「InsertedDevicePolicy」
#
# Inserted device policy.
#
# How to treat USB devices that are already connected
# *after* the daemon starts. One of:
#
# * block        - deauthorize every present device
# * reject       - remove every present device
# * apply-policy - evaluate the ruleset for every present
#                  device
#
InsertedDevicePolicy=apply-policy
```
>挿入デバイスポリシー
デーモン起動後に接続されたUSBデバイスをデーモン起動後にどのように扱うか。以下から選択。
　block        - 全てのデバイスを拒否
　reject       - 全てのデバイスを削除
　apply-policy - 全てのデバイスにルールを適用
<br>

```terminal:パラメータ「AuthorizedDefault」
#
# Control which devices are authorized by default.
#
# The USBGuard daemon modifies some the default authorization state attributes
# of controller devices. This setting, enables you to define what value the
# default authorization is set to.
#
# * keep         - do not change the authorization state
# * none         - every new device starts out deauthorized
# * all          - every new device starts out authorized
# * internal     - internal devices start out authorized, external devices start
#                  out deauthorized (this requires the ACPI tables to properly
#                  label internal devices, and kernel support)
#
#AuthorizedDefault=none
```
>デフォルトで許可されるデバイスを制御します。
USBGuardデーモンは、コントローラデバイスのデフォルトの認証状態の属性の一部を変更します。
この設定により、デフォルトの認可をどのような値に設定するかを定義することができます。
　keep         - 認証状態を変更しない
　none         - 新しいデバイスはすべて非認証でスタートする
　all          - すべての新しいデバイスは、認可された状態でスタートします。
　internal     - 内部デバイスは認証済み、外部デバイスは非認証でスタート（これには内部デバイスを適切にラベル付けするACPIテーブルと、カーネルのサポートが必要です。）
<br>

```terminal:パラメータ「RestoreControllerDeviceState」
#
# Restore controller device state.
#
# The USBGuard daemon modifies some attributes of controller
# devices like the default authorization state of new child device
# instances. Using this setting, you can control whether the
# daemon will try to restore the attribute values to the state
# before modification on shutdown.
#
# SECURITY CONSIDERATIONS: If set to true, the USB authorization
# policy could be bypassed by performing some sort of attack on the
# daemon (via a local exploit or via a USB device) to make it shutdown
# and restore to the operating-system default state (known to be permissive).
#
RestoreControllerDeviceState=false
```
>コントローラデバイスの状態を復元します。
USBGuardデーモンは、新しい子デバイスインスタンスのデフォルトの認証状態など、コントローラデバイスのいくつかの属性を変更します。
この設定を使用すると、シャットダウン時にデーモンが属性値を変更前の状態に戻そうとするかどうかを制御できます。
セキュリティに関する考慮事項：trueに設定すると、（ローカルエクスプロイトまたはUSBデバイスを介して）デーモンに何らかの攻撃を行い、シャットダウンさせてオペレーティングシステムのデフォルト状態（許可されていることが知られている）に復元することによって、USB認証ポリシーをバイパスすることができます。
<br>

```terminal:パラメータ「DeviceManagerBackend」
#
# Device manager backend
#
# Which device manager backend implementation to use. One of:
#
# * uevent   - Netlink based implementation which uses sysfs to scan for present
#              devices and an uevent netlink socket for receiving USB device
#              related events.
# * umockdev - umockdev based device manager capable of simulating devices based
#              on umockdev-record files. Useful for testing.
#
DeviceManagerBackend=uevent
```
>デバイスマネージャーバックエンド
どのデバイスマネージャーバックエンド実装を使用するか。以下から選択。
　uevent   - Netlink ベースの実装で、sysfs を使用して存在するデバイスをスキャンし、uevent netlink ソケットを使用して USB デバイス関連のイベントを受信します。
　umockdev - umockdev-recordファイルに基づいてデバイスをシミュレートすることができるumockdevベースのデバイスマネージャです。テストに便利です。
<br>

```terminal:WARNING
#!!! WARNING: It's good practice to set at least one of the !!!
#!!!          two options bellow. If none of them are set,  !!!
#!!!          the daemon will accept IPC connections from   !!!
#!!!          anyone, thus allowing anyone to modify the    !!!
#!!!          rule set and (de)authorize USB devices.       !!!
```
>以下の2つのオプションのうち、少なくとも1つは設定しておくとよいでしょう。いずれも設定されていない場合、デーモンは誰からのIPC接続も受け入れるため、誰でもルールセットを変更し、USBデバイスを認可/拒否することができます。
<br>

```terminal:パラメータ「IPCAllowedUsers」
#
# Users allowed to use the IPC interface.
#
# A space delimited list of usernames that the daemon will
# accept IPC connections from.
#
# IPCAllowedUsers=username1 username2 ...
#
IPCAllowedUsers=root
```
>IPCインターフェイスの使用を許可されたユーザー。
デーモンが IPC 接続を受け入れるユーザー名のスペース区切りのリスト。
<br>

```terminal:パラメータ「IPCAllowedGroups」
#
# Groups allowed to use the IPC interface.
#
# A space delimited list of groupnames that the daemon will
# accept IPC connections from.
#
# IPCAllowedGroups=groupname1 groupname2 ...
#
IPCAllowedGroups=wheel
```
>IPCインターフェイスの使用を許可されたグループ。
デーモンがIPC接続を受け入れるグループ名のスペース区切りのリスト。
<br>

```terminal:パラメータ「IPCAccessControlFiles」
#
# IPC access control definition files path.
#
# The files at this location will be interpreted by the daemon
# as access control definition files. The (base)name of a file
# should be in the form:
#
#   [user][:<group>]
#
# and should contain lines in the form:
#
#   <section>=[privilege] ...
#
# This way each file defines who is able to connect to the IPC
# bus and what privileges he has.
#
IPCAccessControlFiles=/etc/usbguard/IPCAccessControl.d/
```
>IPCアクセス制御定義ファイルのパス。
この場所にあるファイルは、デーモンによってアクセス制御の定義ファイルとして解釈されます。ファイルの(ベース)名は次のような形式でなければなりません。
　[user][:<group>]
そして、以下の形式の行を持つ必要があります。
　<section>=[privilege] ...
こうすることで、各ファイルが、誰がIPCバスに接続でき、どのような権限を持つかを定義することができる。
<br>

```terminal:パラメータ「DeviceRulesWithPort」
#
# Generate device specific rules including the "via-port"
# attribute.
#
# This option modifies the behavior of the allowDevice
# action. When instructed to generate a permanent rule,
# the action can generate a port specific rule. Because
# some systems have unstable port numbering, the generated
# rule might not match the device after rebooting the system.
#
# If set to false, the generated rule will still contain
# the "parent-hash" attribute which also defines an association
# to the parent device. See usbguard-rules.conf(5) for more
# details.
#
DeviceRulesWithPort=false
```
>"via-port "属性を含むデバイス固有のルールを生成します。
このオプションは、allowDevice アクションの動作を変更します。恒久規則を生成するように指示された場合、アクションはポート固有の規則を生成することができます。
一部のシステムではポート番号が不安定なため、システムを再起動すると、生成されたルールがデバイスと一致しない場合があります。
false に設定すると、生成されるルールには、親デバイスへの関連付けを定義する "parent-hash" 属性が含まれたままとなります。
詳細については usbguard-rules.conf(5) を参照してください。
<br>

```terminal:パラメータ「AuditBackend」
#
# USBGuard Audit events log backend
#
# One of:
#
# * FileAudit - Log audit events into a file specified by
#               AuditFilePath setting (see below)
# * LinuxAudit - Log audit events using the Linux Audit
#                subsystem (using audit_log_user_message)
#
AuditBackend=FileAudit
```
>USBGuard Auditイベントログバックエンド。以下から選択。
　FileAudit - Log audit events into a file specified by AuditFilePath setting (see below)
　LinuxAudit - Linux Auditサブシステムを使用した監査イベントのログ取得（audit_log_user_messageの使用）
<br>

```terminal:パラメータ「AuditFilePath」
#
# USBGuard audit events log file path.
#
AuditFilePath=/var/log/usbguard/usbguard-audit.log
```
>USBGuard監査イベントのログファイルのパス。
<br>

```terminal:パラメータ「HidePII」
#
# Hides personally identifiable information such as device serial numbers and
# hashes of descriptors (which include the serial number) from audit entries.
#
#HidePII=false
```
>デバイスのシリアル番号やディスクリプタのハッシュ（シリアル番号を含む）など、個人を特定できる情報を監査項目から隠蔽します。
<br>

## 2.1 用語
IPC(InterProcess Communication)：
　プロセス間通信(https://e-words.jp/w/IPC.html)
>コンピュータ上で実行中のプログラムの間でデータをやり取りするための仕組み。あるプログラムから別のプログラムへデータやメッセージを通知したり、データの提供依頼や処理依頼を行ったり、依頼に対する結果を返したりすることができる。