Add Stdio.File()->accessat() and extend predef::access() to support EUID checks
predef::access()
performs access control with the real uid and gid.
Sometimes you want to perform the corresponding checks, but for the effective uid and gid.
The predef::access()
euid checks may be implemented with eaccess(2/3)
, eiudaccess(3)
or faccessat(2)
, or emulated via calling of test(1)
with suitable arguments, and should be selected via a third argument containing the character "e"
. A suitable detection flag should also be added.
Stdio.File()->accessat()
should be implemented with faccessat()
. An availability flag Stdio.__HAVE_ACCESSAT__
with a value of 1
should also be added when Stdio.File()->accessat()
is available. The symlinks mode of faccessat(2)
should be selectable via the third argument containing the character "l"
.