mirror of
https://github.com/sudo-project/sudo.git
synced 2025-09-03 07:45:47 +00:00
Stash umask in struct sudo_user so we don't need to look it up later.
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#ifdef STDC_HEADERS
|
#ifdef STDC_HEADERS
|
||||||
@@ -318,6 +319,10 @@ sudoers_policy_deserialize_info(void *v, char **runas_user, char **runas_group)
|
|||||||
user_ngids = ngids;
|
user_ngids = ngids;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Stash initial umask for later use. */
|
||||||
|
user_umask = umask(SUDO_UMASK);
|
||||||
|
umask(user_umask);
|
||||||
|
|
||||||
/* Setup debugging if indicated. */
|
/* Setup debugging if indicated. */
|
||||||
if (debug_flags != NULL) {
|
if (debug_flags != NULL) {
|
||||||
sudo_debug_init(NULL, debug_flags);
|
sudo_debug_init(NULL, debug_flags);
|
||||||
|
@@ -435,11 +435,8 @@ sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add[],
|
|||||||
*/
|
*/
|
||||||
if (def_umask != 0777) {
|
if (def_umask != 0777) {
|
||||||
cmnd_umask = def_umask;
|
cmnd_umask = def_umask;
|
||||||
if (!def_umask_override) {
|
if (!def_umask_override)
|
||||||
mode_t omask = umask(cmnd_umask);
|
cmnd_umask |= user_umask;
|
||||||
cmnd_umask |= omask;
|
|
||||||
umask(omask);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ISSET(sudo_mode, MODE_LOGIN_SHELL)) {
|
if (ISSET(sudo_mode, MODE_LOGIN_SHELL)) {
|
||||||
|
@@ -94,6 +94,7 @@ struct sudo_user {
|
|||||||
int cols;
|
int cols;
|
||||||
int flags;
|
int flags;
|
||||||
int max_groups;
|
int max_groups;
|
||||||
|
mode_t umask;
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
uid_t gid;
|
uid_t gid;
|
||||||
pid_t sid;
|
pid_t sid;
|
||||||
@@ -174,6 +175,7 @@ struct sudo_user {
|
|||||||
#define user_uid (sudo_user.uid)
|
#define user_uid (sudo_user.uid)
|
||||||
#define user_gid (sudo_user.gid)
|
#define user_gid (sudo_user.gid)
|
||||||
#define user_sid (sudo_user.sid)
|
#define user_sid (sudo_user.sid)
|
||||||
|
#define user_umask (sudo_user.umask)
|
||||||
#define user_passwd (sudo_user.pw->pw_passwd)
|
#define user_passwd (sudo_user.pw->pw_passwd)
|
||||||
#define user_dir (sudo_user.pw->pw_dir)
|
#define user_dir (sudo_user.pw->pw_dir)
|
||||||
#define user_gids (sudo_user.gids)
|
#define user_gids (sudo_user.gids)
|
||||||
|
Reference in New Issue
Block a user