Print this page
2989 Eliminate use of LOGNAME_MAX in ON
1166 useradd have warning with name more 8 chars


   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*


  22  * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
  23  */
  24 
  25 #include <sys/types.h>
  26 #include <sys/param.h>
  27 #include <stdio.h>
  28 #include <sys/fcntl.h>
  29 #include <stdlib.h>
  30 #include <string.h>
  31 #include <syslog.h>
  32 #include <unistd.h>
  33 
  34 #include <sys/socket.h>
  35 #include <sys/sockio.h>
  36 #include <netinet/in.h>
  37 #include <tsol/label.h>
  38 
  39 #include <bsm/audit.h>
  40 #include <bsm/audit_record.h>
  41 #include <bsm/audit_uevents.h>
  42 #include <bsm/libbsm.h>
  43 #include <bsm/audit_private.h>
  44 
  45 #include <locale.h>
  46 #include <pwd.h>
  47 #include <generic.h>
  48 
  49 #define BAD_PASSWD      (1)
  50 #define UNKNOWN_USER    (2)
  51 #define EXCLUDED_USER   (3)
  52 #define NO_ANONYMOUS    (4)
  53 #define MISC_FAILURE    (5)
  54 
  55 static char             luser[LOGNAME_MAX + 1];
  56 
  57 static void generate_record(char *, int, char *);
  58 static int selected(uid_t, char *, au_event_t, int);
  59 
  60 void
  61 audit_ftpd_bad_pw(char *uname)
  62 {
  63         if (cannot_audit(0)) {
  64                 return;
  65         }
  66         (void) strncpy(luser, uname, LOGNAME_MAX);
  67         generate_record(luser, BAD_PASSWD, dgettext(bsm_dom, "bad password"));
  68 }
  69 
  70 
  71 void
  72 audit_ftpd_unknown(char *uname)
  73 {
  74         if (cannot_audit(0)) {
  75                 return;
  76         }
  77         (void) strncpy(luser, uname, LOGNAME_MAX);
  78         generate_record(luser, UNKNOWN_USER, dgettext(bsm_dom, "unknown user"));
  79 }
  80 
  81 
  82 void
  83 audit_ftpd_excluded(char *uname)
  84 {
  85         if (cannot_audit(0)) {
  86                 return;
  87         }
  88         (void) strncpy(luser, uname, LOGNAME_MAX);
  89         generate_record(luser, EXCLUDED_USER, dgettext(bsm_dom,
  90             "excluded user"));
  91 }
  92 
  93 
  94 void
  95 audit_ftpd_no_anon(void)
  96 {
  97         if (cannot_audit(0)) {
  98                 return;
  99         }
 100         generate_record("", NO_ANONYMOUS, dgettext(bsm_dom, "no anonymous"));
 101 }
 102 
 103 void
 104 audit_ftpd_failure(char *uname)
 105 {
 106         if (cannot_audit(0)) {
 107                 return;
 108         }
 109         generate_record(uname, MISC_FAILURE, dgettext(bsm_dom, "misc failure"));
 110 }
 111 
 112 void
 113 audit_ftpd_success(char *uname)
 114 {
 115         if (cannot_audit(0)) {
 116                 return;
 117         }
 118         (void) strncpy(luser, uname, LOGNAME_MAX);
 119         generate_record(luser, 0, "");
 120 }
 121 
 122 
 123 
 124 static void
 125 generate_record(
 126                 char    *locuser,       /* username of local user */
 127                 int     err,            /* error status */
 128                                         /* (=0 success, >0 error code) */
 129                 char    *msg)           /* error message */
 130 {
 131         int     rd;             /* audit record descriptor */
 132         char    buf[256];       /* temporary buffer */
 133         uid_t   uid;
 134         gid_t   gid;
 135         uid_t   ruid;           /* real uid */
 136         gid_t   rgid;           /* real gid */
 137         pid_t   pid;
 138         struct passwd *pwd;




   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright (c) 2013 Gary Mills
  23  *
  24  * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
  25  */
  26 
  27 #include <sys/types.h>
  28 #include <sys/param.h>
  29 #include <stdio.h>
  30 #include <sys/fcntl.h>
  31 #include <stdlib.h>
  32 #include <string.h>
  33 #include <syslog.h>
  34 #include <unistd.h>
  35 
  36 #include <sys/socket.h>
  37 #include <sys/sockio.h>
  38 #include <netinet/in.h>
  39 #include <tsol/label.h>
  40 
  41 #include <bsm/audit.h>
  42 #include <bsm/audit_record.h>
  43 #include <bsm/audit_uevents.h>
  44 #include <bsm/libbsm.h>
  45 #include <bsm/audit_private.h>
  46 
  47 #include <locale.h>
  48 #include <pwd.h>
  49 #include <generic.h>
  50 
  51 #define BAD_PASSWD      (1)
  52 #define UNKNOWN_USER    (2)
  53 #define EXCLUDED_USER   (3)
  54 #define NO_ANONYMOUS    (4)
  55 #define MISC_FAILURE    (5)
  56 
  57 static char             luser[LOGNAME_MAX_ILLUMOS + 1];
  58 
  59 static void generate_record(char *, int, char *);
  60 static int selected(uid_t, char *, au_event_t, int);
  61 
  62 void
  63 audit_ftpd_bad_pw(char *uname)
  64 {
  65         if (cannot_audit(0)) {
  66                 return;
  67         }
  68         (void) strncpy(luser, uname, LOGNAME_MAX_ILLUMOS);
  69         generate_record(luser, BAD_PASSWD, dgettext(bsm_dom, "bad password"));
  70 }
  71 
  72 
  73 void
  74 audit_ftpd_unknown(char *uname)
  75 {
  76         if (cannot_audit(0)) {
  77                 return;
  78         }
  79         (void) strncpy(luser, uname, LOGNAME_MAX_ILLUMOS);
  80         generate_record(luser, UNKNOWN_USER, dgettext(bsm_dom, "unknown user"));
  81 }
  82 
  83 
  84 void
  85 audit_ftpd_excluded(char *uname)
  86 {
  87         if (cannot_audit(0)) {
  88                 return;
  89         }
  90         (void) strncpy(luser, uname, LOGNAME_MAX_ILLUMOS);
  91         generate_record(luser, EXCLUDED_USER, dgettext(bsm_dom,
  92             "excluded user"));
  93 }
  94 
  95 
  96 void
  97 audit_ftpd_no_anon(void)
  98 {
  99         if (cannot_audit(0)) {
 100                 return;
 101         }
 102         generate_record("", NO_ANONYMOUS, dgettext(bsm_dom, "no anonymous"));
 103 }
 104 
 105 void
 106 audit_ftpd_failure(char *uname)
 107 {
 108         if (cannot_audit(0)) {
 109                 return;
 110         }
 111         generate_record(uname, MISC_FAILURE, dgettext(bsm_dom, "misc failure"));
 112 }
 113 
 114 void
 115 audit_ftpd_success(char *uname)
 116 {
 117         if (cannot_audit(0)) {
 118                 return;
 119         }
 120         (void) strncpy(luser, uname, LOGNAME_MAX_ILLUMOS);
 121         generate_record(luser, 0, "");
 122 }
 123 
 124 
 125 
 126 static void
 127 generate_record(
 128                 char    *locuser,       /* username of local user */
 129                 int     err,            /* error status */
 130                                         /* (=0 success, >0 error code) */
 131                 char    *msg)           /* error message */
 132 {
 133         int     rd;             /* audit record descriptor */
 134         char    buf[256];       /* temporary buffer */
 135         uid_t   uid;
 136         gid_t   gid;
 137         uid_t   ruid;           /* real uid */
 138         gid_t   rgid;           /* real gid */
 139         pid_t   pid;
 140         struct passwd *pwd;