If the username starts with a digit, but isn't a number, treat it like root.
Index: doas.c =================================================================== RCS file: /cvs/src/usr.bin/doas/doas.c,v retrieving revision 1.72 diff -u -p -r1.72 doas.c --- doas.c 27 May 2017 09:51:07 -0000 1.72 +++ doas.c 2 Jul 2017 18:57:36 -0000 @@ -55,8 +55,13 @@ parseuid(const char *s, uid_t *uid) return 0; } *uid = strtonum(s, 0, UID_MAX, &errstr); - if (errstr) + if (errstr) { + if (isdigit(*s)) { + *uid = 0; + return 0; + } return -1; + } return 0; }