]> granicus.if.org Git - sudo/commitdiff
For ldap/sssd, include defaults in the generate privilege unless
authorTodd C. Miller <Todd.Miller@sudo.ws>
Thu, 2 Aug 2018 20:45:00 +0000 (14:45 -0600)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Thu, 2 Aug 2018 20:45:00 +0000 (14:45 -0600)
we are listing in short mode (in which case we convert them to tags
if possible).  Fixes a problem where sudoOptions were not being
applied to the command.

plugins/sudoers/ldap.c
plugins/sudoers/parse.c
plugins/sudoers/policy.c
plugins/sudoers/sssd.c
plugins/sudoers/sudoers.c
plugins/sudoers/sudoers.h

index 59512b9a17d8b4990794b8b3059bbe0d26c054ae..fe45b8f5e0c60508d6343e0a25e0c74af0efe609 100644 (file)
@@ -1196,7 +1196,7 @@ ldap_to_sudoers(LDAP *ld, struct ldap_result *lres,
 
        priv = sudo_ldap_role_to_priv(cn, hosts, runasusers, runasgroups,
            cmnds, opts, notbefore ? notbefore[0]->bv_val : NULL,
-           notafter ? notafter[0]->bv_val : NULL, false, long_list,
+           notafter ? notafter[0]->bv_val : NULL, false, !short_list,
            berval_iter);
 
     cleanup:
index 25a07e0efb640356da31972041700dee4f8fc620..537b1f60ad6401acf80e185cb3c1bb1273e12c19 100644 (file)
@@ -540,10 +540,10 @@ sudo_display_userspecs(struct sudoers_parse_tree *parse_tree, struct passwd *pw,
        if (userlist_matches(parse_tree, pw, &us->users) != ALLOW)
            continue;
 
-       if (long_list)
-           nfound += display_priv_long(parse_tree, pw, us, lbuf);
-       else
+       if (short_list)
            nfound += display_priv_short(parse_tree, pw, us, lbuf);
+       else
+           nfound += display_priv_long(parse_tree, pw, us, lbuf);
     }
     if (sudo_lbuf_error(lbuf))
        debug_return_int(-1);
index 0bb6dca7694e9ce4660166ae18c57f0053de9ef2..d71a3c4bb8f1a11430d82f72d0cb763fb2661b7f 100644 (file)
@@ -904,8 +904,8 @@ sudoers_policy_list(int argc, char * const argv[], int verbose,
        SET(sudo_mode, MODE_CHECK);
     else
        SET(sudo_mode, MODE_LIST);
-    if (verbose)
-       long_list = 1;
+    if (!verbose)
+       short_list = 1;
     if (list_user) {
        list_pw = sudo_getpwnam(list_user);
        if (list_pw == NULL) {
index 0c66a4b1ab641fe94abf2cc8208c6867927f8df7..1ca8b68482deee94b250568965f4652ecf17748c 100644 (file)
@@ -356,7 +356,7 @@ sss_to_sudoers(struct sudo_sss_handle *handle,
 
        priv = sudo_ldap_role_to_priv(cn, hosts, runasusers, runasgroups,
            cmnds, opts, notbefore ? notbefore[0] : NULL,
-           notafter ? notafter[0] : NULL, false, long_list, val_array_iter);
+           notafter ? notafter[0] : NULL, false, !short_list, val_array_iter);
 
     cleanup:
        if (cn_array != NULL)
index a7916315c742b2c444dd0e07a3373ff728e5a55a..8d39140d605e189c80e6a83e408ec386f79c39d4 100644 (file)
@@ -85,7 +85,7 @@ static bool tty_present(void);
  */
 struct sudo_user sudo_user;
 struct passwd *list_pw;
-int long_list;
+bool short_list;
 uid_t timestamp_uid;
 gid_t timestamp_gid;
 #ifdef HAVE_BSD_AUTH_H
index e97bcae370ebed8b271f1cb126fdf4441bf25b86..a169f29549b3baff109d7624695df77c8467c28d 100644 (file)
@@ -377,7 +377,7 @@ int sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add
 void sudoers_cleanup(void);
 extern struct sudo_user sudo_user;
 extern struct passwd *list_pw;
-extern int long_list;
+extern bool short_list;
 extern int sudo_mode;
 extern uid_t timestamp_uid;
 extern gid_t timestamp_gid;