Compare commits

...

2 Commits

Author SHA1 Message Date
Fierelier c46a926a04 Set SUDO_* 2023-12-11 14:31:08 +01:00
Fierelier ec3b4ffc33 Set GID, SHELL 2023-12-11 14:30:49 +01:00
1 changed files with 18 additions and 1 deletions

View File

@ -35,10 +35,12 @@ int main(int argc, char **argv) {
setenv("PATH","/usr/local/bin:/usr/bin:/bin",1);
}
// UID, USER, HOME
// UID, GID, USER, HOME, SHELL
char passwStore[sizeof(struct passwd)];
sprintf(passwStore,"%d",euid);
setenv("UID",passwStore,1);
sprintf(passwStore,"%d",egid);
setenv("GID",passwStore,1);
struct passwd * pw = getpwuid(euid);
if (pw == NULL) {
fprintf(stderr,"["APP_NAME"] Error 253: Failed to get user information (errno: %d: %s)\n",errno,strerror(errno));
@ -46,6 +48,21 @@ int main(int argc, char **argv) {
}
setenv("USER",pw -> pw_name,1);
setenv("HOME",pw -> pw_dir,1);
setenv("SHELL",pw -> pw_shell,1);
// SUDO ENV
sprintf(passwStore,"%d",uid);
setenv("SUDO_UID",passwStore,1);
sprintf(passwStore,"%d",gid);
setenv("SUDO_GID",passwStore,1);
pw = getpwuid(uid);
if (pw == NULL) {
fprintf(stderr,"["APP_NAME"] Error 253: Failed to get user information (errno: %d: %s)\n",errno,strerror(errno));
return 253;
}
setenv("SUDO_USER",pw -> pw_name,1);
setenv("SUDO_HOME",pw -> pw_dir,1);
setenv("SUDO_COMMAND",pw -> pw_shell,1);
// Strip first argument, and move them by 1
char **cmd;