From c8cff27162453ff7334bbdd1b587260a77f5757d Mon Sep 17 00:00:00 2001 From: davidn Date: Sat, 10 May 1997 12:49:30 +0000 Subject: Move login_cap.h from src/include for easier maintenance with related files. --- lib/libutil/Makefile | 2 + lib/libutil/login_cap.h | 141 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+) create mode 100644 lib/libutil/login_cap.h (limited to 'lib/libutil') diff --git a/lib/libutil/Makefile b/lib/libutil/Makefile index 4a0a3f3..de882b0 100644 --- a/lib/libutil/Makefile +++ b/lib/libutil/Makefile @@ -29,5 +29,7 @@ MLINKS+=uucplock.3 uu_lock.3 uucplock.3 uu_unlock.3 uucplock.3 uu_lockerr.3 beforeinstall: ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/libutil.h \ ${DESTDIR}/usr/include + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/login_cap.h \ + ${DESTDIR}/usr/include .include diff --git a/lib/libutil/login_cap.h b/lib/libutil/login_cap.h new file mode 100644 index 0000000..4c92f0a --- /dev/null +++ b/lib/libutil/login_cap.h @@ -0,0 +1,141 @@ +/*- + * Copyright (c) 1996 by + * Sean Eric Fagan + * David Nugent + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, is permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice immediately at the beginning of the file, without modification, + * this list of conditions, and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. This work was done expressly for inclusion into FreeBSD. Other use + * is permitted provided this notation is included. + * 4. Absolutely no warranty of function or purpose is made by the authors. + * 5. Modifications may be freely made to this file providing the above + * conditions are met. + * + * Low-level routines relating to the user capabilities database + * + * Was login_cap.h,v 1.9 1997/05/07 20:00:01 eivind Exp + * $Id$ + */ + +#ifndef _LOGIN_CAP_H_ +#define _LOGIN_CAP_H_ + +#define LOGIN_DEFCLASS "default" +#define LOGIN_DEFSTYLE "passwd" +#define LOGIN_DEFSERVICE "login" +#define LOGIN_DEFUMASK 022 +#define LOGIN_DEFPRI 0 +#define _PATH_LOGIN_CONF "/etc/login.conf" +#define _FILE_LOGIN_CONF ".login_conf" +#define _PATH_AUTHPROG "/usr/libexec/login_" + +#define LOGIN_SETGROUP 0x0001 /* set group */ +#define LOGIN_SETLOGIN 0x0002 /* set login (via setlogin) */ +#define LOGIN_SETPATH 0x0004 /* set path */ +#define LOGIN_SETPRIORITY 0x0008 /* set priority */ +#define LOGIN_SETRESOURCES 0x0010 /* set resources (cputime, etc.) */ +#define LOGIN_SETUMASK 0x0020 /* set umask, obviously */ +#define LOGIN_SETUSER 0x0040 /* set user (via setuid) */ +#define LOGIN_SETENV 0x0080 /* set user environment */ +#define LOGIN_SETALL 0x00ff /* set everything */ + +#define BI_AUTH "authorize" +#define BI_AUTH2 "authorise" +#define BI_REJECT "reject" +#define BI_REMOVE "remove" +#define BI_ROOTOKAY "root" +#define BI_SECURE "secure" +#define BI_SETENV "setenv" + +#ifndef AUTH_NONE /* Protect against */ +#define AUTH_NONE 0x00 +#endif +#define AUTH_OKAY 0x01 +#define AUTH_ROOTOKAY 0x02 /* root login okay */ +#define AUTH_SECURE 0x04 /* secure login */ + +typedef struct login_cap { + char *lc_class; + char *lc_cap; + char *lc_style; +} login_cap_t; + +typedef struct login_time { + u_short lt_start; /* Start time */ + u_short lt_end; /* End time */ + #define LTM_NONE 0x00 + #define LTM_SUN 0x01 + #define LTM_MON 0x02 + #define LTM_TUE 0x04 + #define LTM_WED 0x08 + #define LTM_THU 0x10 + #define LTM_FRI 0x20 + #define LTM_SAT 0x40 + #define LTM_ANY 0x7F + #define LTM_WK 0x3E + #define LTM_WD 0x41 + u_char lt_dow; /* Days of week */ +} login_time_t; +#define LC_MAXTIMES 64 + +#include +__BEGIN_DECLS +struct passwd; + +void login_close __P((login_cap_t *)); +login_cap_t *login_getclassbyname __P((const char *, const char *homedir)); +login_cap_t *login_getclass __P((const struct passwd *)); +login_cap_t *login_getuserclass __P((const struct passwd *)); + +char *login_getcapstr __P((login_cap_t*, const char *, char *, char *)); +char **login_getcaplist __P((login_cap_t *, const char *, const char *)); +char *login_getstyle __P((login_cap_t *, char *, const char *)); +rlim_t login_getcaptime __P((login_cap_t *, const char *, rlim_t, rlim_t)); +rlim_t login_getcapnum __P((login_cap_t *, const char *, rlim_t, rlim_t)); +rlim_t login_getcapsize __P((login_cap_t *, const char *, rlim_t, rlim_t)); +char *login_getpath __P((login_cap_t *, const char *, char *)); +int login_getcapbool __P((login_cap_t *, const char *, int)); + +int setclasscontext __P((const char*, unsigned int)); +int setusercontext __P((login_cap_t*, const struct passwd*, uid_t, unsigned int)); +void setclassresources __P((login_cap_t *)); +void setclassenvironment __P((login_cap_t *, const struct passwd *, int)); + +int authenticate __P((const char*, const char*, const char*, const char*)); +int auth_script __P((const char*, ...)); +int auth_env __P((void)); +int auth_scan __P((int)); +int auth_rmfiles __P((void)); +void auth_checknologin __P((login_cap_t*)); +int auth_cat __P((const char*)); + +int auth_ttyok __P((login_cap_t*, const char *)); +int auth_hostok __P((login_cap_t*, const char *, char const *)); +int auth_timeok __P((login_cap_t*, time_t)); + +struct tm; + +login_time_t parse_lt __P((const char *)); +int in_ltm __P((const login_time_t *, struct tm *, time_t *)); +int in_ltms __P((const login_time_t *, struct tm *, time_t *)); + +/* auxiliary functions */ + +int login_strinlist __P((char **, char const *, int)); +int login_str2inlist __P((char **, const char *, const char *, int)); +login_time_t * login_timelist __P((login_cap_t *, char const *, int *, login_time_t **)); +int login_ttyok __P((login_cap_t *, const char *, const char *, const char *)); +int login_hostok __P((login_cap_t *, const char *, const char *, const char *, const char *)); + +__END_DECLS + +#endif /* _LOGIN_CAP_H_ */ + -- cgit v1.1