[Bug]: perms X not supported in linux_acl module

Abierto Apto para principiantes
#70,318 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
linux, python

Línea de trabajo

El problema está en salt/modules/linux_acl.py y salt/states/linux_acl.py. Comience leyendo el artículo enlazado para comprender las máscaras ACL y el permiso 'X'. Examine la función _parse_acl y la lógica de conversión octal. El parche muestra dónde agregar la compatibilidad con 'X'. Ejecute las pruebas existentes para el módulo linux_acl para asegurarse de que los cambios no rompan la funcionalidad existente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug needs-triage severity-low
What happened?

X is a valid char in ACLs

For some details see
https://nordisch.org/posts/linux-acl-masks-fun/

I am not sure why we do the whole octal conversion in the first place.

my current attempt to solve it looks like this:

diff --git a/salt/modules/linux_acl.py b/salt/modules/linux_acl.py
index e1fcf4a9c8..64f1f061c4 100644
--- a/salt/modules/linux_acl.py
+++ b/salt/modules/linux_acl.py
@@ -157,7 +157,7 @@ def _parse_acl(acl, user, group):
         vals["permissions"]["write"] = True
     else:
         vals["permissions"]["write"] = False
-    if "x" in comps[-1]:
+    if "x" in comps[-1] or "X" in comps[-1]:
         octal += 1
         vals["permissions"]["execute"] = True
     else:
diff --git a/salt/states/linux_acl.py b/salt/states/linux_acl.py
index c45c938348..2899287b64 100644
--- a/salt/states/linux_acl.py
+++ b/salt/states/linux_acl.py
@@ -102,7 +102,7 @@ def present(name, acl_type, acl_name="", perms="", recurse=False, force=False):
     """
     ret = {"name": name, "result": True, "changes": {}, "comment": ""}

-    _octal = {"r": 4, "w": 2, "x": 1, "-": 0}
+    _octal = {"r": 4, "w": 2, "x": 1, "X": 1, "-": 0}
     _octal_lookup = {0: "-", 1: "r", 2: "w", 4: "x"}

     if not os.path.exists(name):

Why do we go through octal here at all?

Type of salt install

other (please specify in bug details)

Major version

3006.x

What supported OS are you seeing the problem on? Can select multiple. (If bug appears on an unsupported OS, please open a GitHub Discussion instead)

opensuse-leap-15.5

salt --versions-report output
salt --versions-report
Salt Version:
          Salt: 3006.0

Python Version:
        Python: 3.13.15 (main, Sep 16 2026, 12:10:42) [GCC]

Dependency Versions:
          cffi: 2.0.0
      cherrypy: Not Installed
   contextvars: 2.4
      dateutil: 2.9.0.post0
     docker-py: Not Installed
         gitdb: Not Installed
     gitpython: Not Installed
        Jinja2: 3.1.6
       libgit2: Not Installed
  looseversion: 1.3.0
      M2Crypto: 0.49.0
          Mako: Not Installed
       msgpack: 1.2.1
  msgpack-pure: Not Installed
  mysql-python: Not Installed
     packaging: 26.3
     pycparser: 3.00
      pycrypto: Not Installed
  pycryptodome: 3.23.0
        pygit2: Not Installed
  python-gnupg: Not Installed
        PyYAML: 6.0.3
         PyZMQ: 27.2.0
        relenv: Not Installed
         smmap: Not Installed
       timelib: Not Installed
       Tornado: 6.5.8
           ZMQ: 4.3.5

System Versions:
          dist: opensuse-tumbleweed 20260921 n/a
        locale: utf-8
       machine: x86_64
       release: 7.2.6-1-default
        system: Linux
       version: openSUSE Tumbleweed 20260921 n/a
Lenguaje dominante
Python
Estrellas
15.8k
Forks
5.6k
Merge medio
5 d 9 h
PR fusionados (30 d)
99

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de saltstack/salt

Todos los issues de saltstack/salt

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.