こちらの記事はAnsible lint Advent Calendar 2022 17日目の記事になります。
今回はルールrisky-file-permissionsについて説明します。
risky-file-permissions
ファイルやディレクトリを作成する処理が含まれるモジュールにおいて安全にファイルやディレクトリが作成されるかどうか検証します。
ファイルもしくはディレクトリの作成の処理が含まれるのは以下のモジュールです。(他にもあるかもしれません)
- ansible.builtin.assemble
- ansible.builtin.copy
- ansible.builtin.file
- ansible.builtin.get_url
- ansible.builtin.replace
- ansible.builtin.template
- community.general.archive
- community.general.ini_file
問題のあるコード
---
- name: Unsafe example of using ini_file
community.general.ini_file:
path: foo
create: true
mode: preserve
修正されたコードその1
例えばcommunity.general.ini_fileにおいてcreate
キーの初期設定はtrue
です。これは対象のファイルが存在しない場合はファイルを作成します。
---
- name: Safe example of using ini_file (1st solution)
community.general.ini_file:
path: foo
create: false # falseを設定して新規にファイルを作成しないようにする
mode: preserve
修正されたコードその2
作成されるファイルへパーミッション情報を付与します。
---
- name: Safe example of using ini_file (2nd solution)
community.general.ini_file:
path: foo
mode: 0600 # パーミッションを設定しファイルのどのような権限でファイルが作成されるか明示する
mode: preserve