summaryrefslogtreecommitdiffstats
path: root/src/ansiblelint/rules/no_same_owner.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 16:04:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 16:04:56 +0000
commitd964cec5e6aa807b75c7a4e7cdc5f11e54b2eda2 (patch)
tree794bc3738a00b5e599f06d1f2f6d79048d87ff8e /src/ansiblelint/rules/no_same_owner.md
parentInitial commit. (diff)
downloadansible-lint-d964cec5e6aa807b75c7a4e7cdc5f11e54b2eda2.tar.xz
ansible-lint-d964cec5e6aa807b75c7a4e7cdc5f11e54b2eda2.zip
Adding upstream version 6.13.1.upstream/6.13.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/ansiblelint/rules/no_same_owner.md')
-rw-r--r--src/ansiblelint/rules/no_same_owner.md55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/ansiblelint/rules/no_same_owner.md b/src/ansiblelint/rules/no_same_owner.md
new file mode 100644
index 0000000..350a3d4
--- /dev/null
+++ b/src/ansiblelint/rules/no_same_owner.md
@@ -0,0 +1,55 @@
+# no-same-owner
+
+This rule checks that the owner and group do not transfer across hosts.
+
+In many cases the owner and group on remote hosts do not match the owner and group assigned to source files.
+Preserving the owner and group during transfer can result in errors with permissions or leaking sensitive information.
+
+When you synchronize files, you should avoid transferring the owner and group by setting `owner: false` and `group: false` arguments.
+When you unpack archives with the `ansible.builtin.unarchive` module you should set the `--no-same-owner` option.
+
+This is an opt-in rule.
+You must enable it in your Ansible-lint configuration as follows:
+
+```yaml
+enable_list:
+ - no-same-owner
+```
+
+## Problematic Code
+
+```yaml
+---
+- name: Example playbook
+ hosts: all
+ tasks:
+ - name: Synchronize conf file
+ ansible.posix.synchronize:
+ src: /path/conf.yaml
+ dest: /path/conf.yaml # <- Transfers the owner and group for the file.
+ - name: Extract tarball to path
+ ansible.builtin.unarchive:
+ src: "{{ file }}.tar.gz"
+ dest: /my/path/ # <- Transfers the owner and group for the file.
+```
+
+## Correct Code
+
+```yaml
+---
+- name: Example playbook
+ hosts: all
+ tasks:
+ - name: Synchronize conf file
+ ansible.posix.synchronize:
+ src: /path/conf.yaml
+ dest: /path/conf.yaml
+ owner: false
+ group: false # <- Does not transfer the owner and group for the file.
+ - name: Extract tarball to path
+ ansible.builtin.unarchive:
+ src: "{{ file }}.tar.gz"
+ dest: /my/path/
+ extra_opts:
+ - --no-same-owner # <- Does not transfer the owner and group for the file.
+```