Skip to content
BSD syscall#354

svc · unix #354

setauid

Sets the calling process's audit user id (auid).

Prototype

int setauid(au_id_t *auid);

Returns: int

Arguments

NameTypeDirDescription
auidau_id_t-

Version history

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard354
xnu-1699.24.8macOS 10.7 Lion354
xnu-2050.18.24macOS 10.8 Mountain Lion354
xnu-2422.115.4macOS 10.9 Mavericks354
xnu-2782.40.9macOS 10.10 Yosemite354
xnu-3247.1.106macOS 10.11 El Capitan354
xnu-3789.1.32macOS 10.12 Sierra354
xnu-4570.1.46macOS 10.13 High Sierra354
xnu-4903.221.2macOS 10.14 Mojave354
xnu-6153.11.26macOS 10.15 Catalina354
xnu-7195.50.7.100.1macOS 11.0 Big Sur354
xnu-8019.41.5macOS 12.0 Monterey354
xnu-8792.41.9macOS 13.0 Ventura354
xnu-10002.1.13macOS 14.0 Sonoma354
xnu-11215.1.10macOS 15.0 Sequoia354
xnu-11417.101.15macOS 15.4 Sequoia354
xnu-12377.1.9macOS 26.0 Tahoe354
xnu-10002.41.9354
xnu-10002.61.3354
xnu-10002.81.5354
xnu-10063.101.15354
xnu-10063.121.3354
xnu-10063.141.1354
xnu-11215.41.3354
xnu-11215.61.5354
xnu-11215.81.4354
xnu-11417.121.6354
xnu-11417.140.69354
xnu-12377.101.15354
xnu-12377.41.6354
xnu-12377.61.12354
xnu-12377.81.4354
xnu-1486.2.11354
xnu-1504.15.3354
xnu-1504.3.12354
xnu-1504.7.4354
xnu-1504.9.17354
xnu-1504.9.26354
xnu-1504.9.37354
xnu-1699.22.73354
xnu-1699.22.81354
xnu-1699.24.23354
xnu-1699.26.8354
xnu-1699.32.7354
xnu-2050.22.13354
xnu-2050.24.15354
xnu-2050.48.11354
xnu-2050.7.9354
xnu-2050.9.2354
xnu-2422.1.72354
xnu-2422.100.13354
xnu-2422.110.17354
xnu-2422.90.20354
xnu-2782.1.97354
xnu-2782.10.72354
xnu-2782.20.48354
xnu-2782.30.5354
xnu-3247.10.11354
xnu-3248.20.55354
xnu-3248.30.4354
xnu-3248.40.184354
xnu-3248.50.21354
xnu-3248.60.10354
xnu-3789.21.4354
xnu-3789.31.2354
xnu-3789.41.3354
xnu-3789.51.2354
xnu-3789.60.24354
xnu-3789.70.16354
xnu-4570.20.62354
xnu-4570.31.3354
xnu-4570.41.2354
xnu-4570.51.1354
xnu-4570.61.1354
xnu-4570.71.2354
xnu-4903.231.4354
xnu-4903.241.1354
xnu-4903.270.47354
xnu-6153.101.6354
xnu-6153.121.1354
xnu-6153.141.1354
xnu-6153.41.3354
xnu-6153.61.1354
xnu-6153.81.5354
xnu-7195.101.1354
xnu-7195.121.3354
xnu-7195.141.2354
xnu-7195.60.75354
xnu-7195.81.3354
xnu-8019.61.5354
xnu-8019.80.24354
xnu-8020.101.4354
xnu-8020.121.3354
xnu-8020.140.41354
xnu-8792.61.2354
xnu-8792.81.2354
xnu-8796.101.5354
xnu-8796.121.2354
xnu-8796.141.3354

Notes

setauid(2) is the lowest-level way to write auid and is restricted to the audit_control privilege. Once set to a non-(-1) value the auid is sticky for the lifetime of the process and its descendants, so misuse permanently misattributes every downstream audit record. Legitimate callers are essentially only login, sshd, sudo, su and securityd.

Detection

Emits AUE_SETAUID; auid changes are also visible by diffing audit_token_t between consecutive ES events. Any attempt to set auid to 0 or -1 from an unprivileged-spawned process is high-fidelity evidence of audit-evasion tooling.

Related APIs

getauidsetaudit_addraudit_token_to_auid