fix uid/gid set order
parent
4cb2449f24
commit
c9567f20e4
|
@ -78,14 +78,6 @@ int Sproc::execute(std::string run_as, std::string group, std::string command )
|
||||||
if ( pid == 0 )
|
if ( pid == 0 )
|
||||||
{
|
{
|
||||||
// child process
|
// child process
|
||||||
if ( seteuid( run_as_uid ) == 0 )
|
|
||||||
{
|
|
||||||
slog.log( E_INFO, "Successfully set UID to '" + std::to_string(run_as_uid) + "' (" + run_as + ")." );
|
|
||||||
} else {
|
|
||||||
slog.log( E_FATAL, "Failed to set UID. Panicking." );
|
|
||||||
return -401;
|
|
||||||
}
|
|
||||||
|
|
||||||
int setegidval = setegid( run_as_gid );
|
int setegidval = setegid( run_as_gid );
|
||||||
if ( setegidval == 0 )
|
if ( setegidval == 0 )
|
||||||
{
|
{
|
||||||
|
@ -94,6 +86,15 @@ int Sproc::execute(std::string run_as, std::string group, std::string command )
|
||||||
slog.log( E_FATAL, "Failed to set GID. Panicking. (setegid: " + std::to_string( setegidval ) + "/" + std::to_string(errno) + ")" );
|
slog.log( E_FATAL, "Failed to set GID. Panicking. (setegid: " + std::to_string( setegidval ) + "/" + std::to_string(errno) + ")" );
|
||||||
return -401;
|
return -401;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( seteuid( run_as_uid ) == 0 )
|
||||||
|
{
|
||||||
|
slog.log( E_INFO, "Successfully set UID to '" + std::to_string(run_as_uid) + "' (" + run_as + ")." );
|
||||||
|
} else {
|
||||||
|
slog.log( E_FATAL, "Failed to set UID. Panicking." );
|
||||||
|
return -401;
|
||||||
|
}
|
||||||
|
|
||||||
exit_code_raw = system( command.c_str() );
|
exit_code_raw = system( command.c_str() );
|
||||||
exit( WEXITSTATUS( exit_code_raw ) );
|
exit( WEXITSTATUS( exit_code_raw ) );
|
||||||
} else if ( pid > 0 )
|
} else if ( pid > 0 )
|
||||||
|
|
Loading…
Reference in New Issue