3 votos

Sudo / sudoers en macOS: regex no funciona pero comodines/globs sí

Sistema: macOS 14.6.1, M2 MacBook Air

Estoy tratando de usar una coincidencia de patrón regex en mi archivo suoders. Según la página del manual de man sudoers así como la documentación en línea, eso debería ser compatible con sudo v1.9.10 o superior.

Al ejecutar sudo --version en mi sistema obtengo 1.9.13p2 así que debería estar bien. Además, al ejecutar el comando de verificación de sintaxis a continuación indica que el archivo se está interpretando correctamente:

$ sudo visudo -c
/etc/sudoers: parsed OK

Aquí hay un ejemplo de una línea de mi archivo sudoers que NO funciona:

luke  ALL=(ALL) NOPASSWD: /bin/launchctl asuser ^[0-9]+$ /usr/sbin/screencapture -D1 -p

Y aquí hay dos comandos similares usando comodines/reglas regulares que funcionan:

luke  ALL=(ALL) NOPASSWD: /bin/launchctl asuser ??? /usr/sbin/screencapture -D1 -p

luke  ALL=(ALL) NOPASSWD: /bin/launchctl asuser * /usr/sbin/screencapture -D1 -p

He hecho toda la depuración que puedo pero sigo desconcertado. ¿Alguien tiene ideas?

5voto

Linc D. Puntos 11

Desde la página del manual de sudoers(5):

Los argumentos de la línea de comandos pueden incluir comodines o ser una expresión regular que comience con ‘^’ y termine con ‘$’.

Esto parece significar que toda la cadena de argumento debe estar incluida en la expresión regular, no solo parte de ella. Por el contrario, cualquier parte de la cadena de argumento puede ser reemplazada por un comodín de shell.

En tu caso, sería

luke  ALL=(ALL) NOPASSWD: /bin/launchctl ^asuser [0-9]+ /usr/sbin/screencapture -D1 -p$

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X