diff options
author | Glenn L McGrath <bug1@ihug.co.nz> | 2003-09-03 16:18:42 +0400 |
---|---|---|
committer | Glenn L McGrath <bug1@ihug.co.nz> | 2003-09-03 16:18:42 +0400 |
commit | 99bd5adf995ee0f83bdda92384137ae810c4c92b (patch) | |
tree | 253331bcdcf278ef28a6f67f87faf80786b78e97 /libbb/change_identity.c | |
parent | 759d7ececd56e5b25bbfcc54a04bf939d80c7ee9 (diff) |
more crond+crontab integrating with loginutil libbb functions and deleted
patch from Thomas Gleixner to init.
Viodz last_patch_108
Diffstat (limited to 'libbb/change_identity.c')
-rw-r--r-- | libbb/change_identity.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libbb/change_identity.c b/libbb/change_identity.c index c2b73eeb8..adebad8ed 100644 --- a/libbb/change_identity.c +++ b/libbb/change_identity.c @@ -40,15 +40,23 @@ /* Become the user and group(s) specified by PW. */ -void change_identity ( const struct passwd *pw ) +const char *change_identity_e2str ( const struct passwd *pw ) { if ( initgroups ( pw-> pw_name, pw-> pw_gid ) == -1 ) - bb_perror_msg_and_die ( "cannot set groups" ); + return "cannot set groups"; endgrent ( ); if ( setgid ( pw-> pw_gid )) - bb_perror_msg_and_die ( "cannot set group id" ); + return "cannot set group id"; if ( setuid ( pw->pw_uid )) - bb_perror_msg_and_die ( "cannot set user id" ); + return "cannot set user id"; + return NULL; } +void change_identity ( const struct passwd *pw ) +{ + const char *err_msg = change_identity_e2str(pw); + + if(err_msg) + bb_perror_msg_and_die ( "%s", err_msg ); +} |