salt icon indicating copy to clipboard operation
salt copied to clipboard

[BUG] file.copy state with makedirs uses file permissions on created directories

Open lkubb opened this issue 2 years ago • 1 comments

Description When file.copy creates parent directories, it creates those with file permissions specified in mode. Directories generally should have the executable bit set though when read permissions are granted.

Setup Irrelevant.

Steps to Reproduce the behavior

create test file:
  file.managed:
    - name: /tmp/file
    - replace: false

/tmp/test will have 644 perms:
  file.copy:
    - name: /tmp/test/test
    - source: /tmp/file
    - makedirs: true
    - mode: '0644'

display perms:
  module.run:
    - file.get_mode:
      - path: /tmp/test

remove test files:
  file.absent:
    - names:
      - /tmp/test
      - /tmp/file

Expected behavior Create directories with sensible permissions.

Screenshots

----------
          ID: display perms
    Function: module.run
      Result: True
     Comment: file.get_mode: 0644
     Started: 14:01:43.678142
    Duration: 0.551 ms
     Changes:
              ----------
              file.get_mode:
                  0644

Versions Report

salt --versions-report (Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)
Salt Version:
          Salt: 3004.2

Dependency Versions:
          cffi: 1.14.6
      cherrypy: unknown
      dateutil: 2.8.0
     docker-py: Not Installed
         gitdb: 4.0.5
     gitpython: 3.1.12
        Jinja2: 2.11.3
       libgit2: Not Installed
      M2Crypto: Not Installed
          Mako: 1.1.4
       msgpack: 1.0.2
  msgpack-pure: Not Installed
  mysql-python: Not Installed
     pycparser: 2.19
      pycrypto: Not Installed
  pycryptodome: 3.9.8
        pygit2: Not Installed
        Python: 3.7.12 (default, May 13 2022, 19:05:09)
  python-gnupg: 0.4.4
        PyYAML: 5.4.1
         PyZMQ: 18.0.1
         smmap: 3.0.2
       timelib: 0.2.4
       Tornado: 4.5.3
           ZMQ: 4.3.1

System Versions:
          dist: darwin 21.5.0
        locale: UTF-8
       machine: x86_64
       release: 21.5.0
        system: Darwin
       version: 12.4 x86_64

lkubb avatar Aug 04 '22 12:08 lkubb

It should have a dir_mode argument, same as file.managed. Definite bug here.

OrangeDog avatar Aug 08 '22 10:08 OrangeDog