Advertisement
Guest User

slock code snippet

a guest
Jan 18th, 2012
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.71 KB | None | 0 0
  1. #ifndef HAVE_BSD_AUTH
  2. static const char *
  3. get_password() { /* only run as root */
  4.         const char *rval;
  5.         struct passwd *pw;
  6.  
  7.         if(geteuid() != 0)
  8.                 die("slock: cannot retrieve password entry (make sure to suid slock)\n");
  9.         pw = getpwuid(getuid());
  10.         endpwent();
  11.         rval =  pw->pw_passwd;
  12.  
  13. #if HAVE_SHADOW_H
  14.         {
  15.                 struct spwd *sp;
  16.                 sp = getspnam(getenv("USER"));
  17.                 endspent();
  18.                 rval = sp->sp_pwdp;
  19.         }
  20. #endif
  21.  
  22.         /* drop privileges */
  23.         if(setgid(pw->pw_gid) < 0 || setuid(pw->pw_uid) < 0)
  24.                 die("slock: cannot drop privileges\n");
  25.         return rval;
  26. }
  27. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement