withPrivileges method
Run privilegedCallback
with root UID and gid
Implementation
void withPrivileges(RunPrivileged privilegedCallback) {
if (!Shell.current.isPrivilegedProcess) {
throw ShellException(
'You can only use withPrivileges when running as a privileged user.');
}
final privileged = geteuid() == 0;
if (!privileged) {
setegid(0);
seteuid(0);
}
privilegedCallback();
/// If the code was originally running privileged then
/// we leave it as it was.
if (!privileged) {
releasePrivileges();
}
}