~ubuntu-branches/ubuntu/quantal/sudo/quantal

« back to all changes in this revision

Viewing changes to auth/secureware.c

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2011-11-20 12:07:45 UTC
  • mfrom: (1.3.17 sid)
  • Revision ID: package-import@ubuntu.com-20111120120745-o3qpklobmygytndc
Tags: 1.8.3p1-1ubuntu1
* Merge from debian/testing, remaining changes:
  - debian/patches/keep_home_by_default.patch:
    + Set HOME in initial_keepenv_table. (rebased for 1.8.3p1)
  - debian/patches/enable_badpass.patch: turn on "mail_badpass" by default:
    + attempting sudo without knowing a login password is as bad as not
      being listed in the sudoers file, especially if getting the password
      wrong means doing the access-check-email-notification never happens
      (rebased for 1.8.3p1)
  - debian/rules:
    + compile with --without-lecture --with-tty-tickets (Ubuntu specific)
    + install man/man8/sudo_root.8 (Ubuntu specific)
    + install apport hooks
    + The ubuntu-sudo-as-admin-successful.patch was taken upstream by
      Debian however it requires a --enable-admin-flag configure flag to
      actually enable it.
  - debian/sudoers: 
    + grant admin group sudo access
  - debian/sudo-ldap.dirs, debian/sudo.dirs: 
    + add usr/share/apport/package-hooks
  - debian/sudo.preinst:
    + avoid conffile prompt by checking for known default /etc/sudoers
      and if found installing the correct default /etc/sudoers file

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (c) 1998-2005, 2010 Todd C. Miller <Todd.Miller@courtesan.com>
3
 
 *
4
 
 * Permission to use, copy, modify, and distribute this software for any
5
 
 * purpose with or without fee is hereby granted, provided that the above
6
 
 * copyright notice and this permission notice appear in all copies.
7
 
 *
8
 
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
 
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
 
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
 
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
 
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
 
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
 
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
 
 *
16
 
 * Sponsored in part by the Defense Advanced Research Projects
17
 
 * Agency (DARPA) and Air Force Research Laboratory, Air Force
18
 
 * Materiel Command, USAF, under agreement number F39502-99-1-0512.
19
 
 */
20
 
 
21
 
#include <config.h>
22
 
 
23
 
#include <sys/types.h>
24
 
#include <sys/param.h>
25
 
#include <stdio.h>
26
 
#ifdef STDC_HEADERS
27
 
# include <stdlib.h>
28
 
# include <stddef.h>
29
 
#else
30
 
# ifdef HAVE_STDLIB_H
31
 
#  include <stdlib.h>
32
 
# endif
33
 
#endif /* STDC_HEADERS */
34
 
#ifdef HAVE_STRING_H
35
 
# include <string.h>
36
 
#endif /* HAVE_STRING_H */
37
 
#ifdef HAVE_STRINGS_H
38
 
# include <strings.h>
39
 
#endif /* HAVE_STRINGS_H */
40
 
#ifdef HAVE_UNISTD_H
41
 
# include <unistd.h>
42
 
#endif /* HAVE_UNISTD_H */
43
 
#include <pwd.h>
44
 
#ifdef __hpux
45
 
#  undef MAXINT
46
 
#  include <hpsecurity.h>
47
 
#else
48
 
#  include <sys/security.h>
49
 
#endif /* __hpux */
50
 
#include <prot.h>
51
 
 
52
 
#include "sudo.h"
53
 
#include "sudo_auth.h"
54
 
 
55
 
int
56
 
secureware_init(pw, promptp, auth)
57
 
    struct passwd *pw;
58
 
    char **promptp;
59
 
    sudo_auth *auth;
60
 
{
61
 
#ifdef __alpha
62
 
    extern int crypt_type;
63
 
 
64
 
    if (crypt_type == INT_MAX)
65
 
        return(AUTH_FAILURE);                   /* no shadow */
66
 
#endif
67
 
    return(AUTH_SUCCESS);
68
 
}
69
 
 
70
 
int
71
 
secureware_verify(pw, pass, auth)
72
 
    struct passwd *pw;
73
 
    char *pass;
74
 
    sudo_auth *auth;
75
 
{
76
 
#ifdef __alpha
77
 
    extern int crypt_type;
78
 
 
79
 
#  ifdef HAVE_DISPCRYPT
80
 
    if (strcmp(user_passwd, dispcrypt(pass, user_passwd, crypt_type)) == 0)
81
 
        return(AUTH_SUCCESS);
82
 
#  else
83
 
    if (crypt_type == AUTH_CRYPT_BIGCRYPT) {
84
 
        if (strcmp(user_passwd, bigcrypt(pass, user_passwd)) == 0)
85
 
            return(AUTH_SUCCESS);
86
 
    } else if (crypt_type == AUTH_CRYPT_CRYPT16) {
87
 
        if (strcmp(user_passwd, crypt(pass, user_passwd)) == 0)
88
 
            return(AUTH_SUCCESS);
89
 
    }
90
 
#  endif /* HAVE_DISPCRYPT */
91
 
#elif defined(HAVE_BIGCRYPT)
92
 
    if (strcmp(user_passwd, bigcrypt(pass, user_passwd)) == 0)
93
 
        return(AUTH_SUCCESS);
94
 
#endif /* __alpha */
95
 
 
96
 
        return(AUTH_FAILURE);
97
 
}