prva verzija za lenny
[sysadmin-cn.git] / sysadmin.h
1 #ifdef ultrix
2 #       define POSIX
3 #       define __POSIX
4 #endif
5
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <unistd.h>
9 #include <string.h>
10 #include <stdarg.h>
11 #include <ctype.h>
12 #include <fcntl.h>
13 #include <errno.h>
14 #include <pwd.h>
15 #include <grp.h>
16 #include <utmp.h>
17 #include <time.h>
18 #include <signal.h>
19 #include <sys/types.h>
20 #include <sys/stat.h>
21
22 #include "version.h"
23
24 /* HM's must have / at the end !!! */
25
26 #if defined(__linux__)
27   #define HM "/home/"
28   #if defined(__i386__)
29     #include "quota.h"  /* From quota-3.09, works only for new quota! */
30     #include "quotaio.h"
31     #include "dqblk_v2.h"
32     #include <mntent.h>
33   #elif defined(__sparc__)
34     #include <sys/quota.h>
35     #include <mntent.h>
36   #else
37   #error Unknown architecture!
38   #endif
39 #elif defined(__SVR4)
40   #define HM "/home/"
41   #include <sys/fs/ufs_quota.h>
42 #elif defined(__osf__)
43   #if defined(DU4)
44     #define HM "/home/"
45     #include <sys/security.h>
46     #include <prot.h>
47     #include <ufs/quota.h>
48     int quotactl(char *, int, int, char *);
49   #else
50     #define HM "/usr/users/"
51     #include <ufs/quota.h>
52     int quotactl(char *, int, int, char *);
53   #endif
54 #elif defined(ultrix)
55   #define HM "/usr/users/"
56   #include <sys/param.h>
57   #include <sys/quota.h>
58   int quota(int, int, int, caddr_t);
59   extern int setreuid(uid_t, uid_t);
60   extern int seteuid(uid_t);
61   extern int putenv(char *);
62 #endif
63
64 #define ALL 0                   /* forbidden + srce + admin */
65 #define NOTALL 1                /* only forbidden */
66 #define ERROR 2                 /* error condition */
67 #define OK 3                    /* everything's fine */
68
69 #define OFF 0                   /* drop privileges */
70 #define ON 1                    /* get priviliges */
71
72 #define MAXLOGIN 16             /* max login size + 1 */
73 #define MAXGROUP 16             /* max group name + 1 */
74 #define MAXNAME 64              /* max username size + 1 */
75 #define MAXSTR 64               /* max input string for quota numbers + 1 */
76 #define MAXDIR 1024             /* max pathlen */
77 #define MAXCOMMAND 256          /* max string length for system() */
78 #define MAXQUOTA 262144         /* max quota in KB */
79 #define MAXMESS 200             /* max message length for shutdown */
80 #define MINGRACE 1              /* min grace period for shutdown */
81 #define MAXGRACE 60             /* max grace period for shutdown */
82
83 #define CONSOLE "/dev/console"  /* console device */
84
85 #define CONF_NOCONSOLE "no_console_check" /* Config: don't check for console */
86
87 #if defined (__linux__) || defined(__SVR4)
88   #define LOGFILE "/var/log/sysadmin.log" /* logfile */
89   #define ACLFILE "/etc/sysadmin/users"   /* acl file */
90   #define OPTFILE "/etc/sysadmin/config"  /* config */
91   #if defined (__linux__)
92     #define MANFILE "/usr/share/sysadmin/sysadm.man" /* online manual */
93     #define PARSE_USERADD_DEFAULTS 1
94   #else /* __SVR4 */
95     #define MANFILE "/usr/local/share/sysadmin/sysadm.man" /* online manual */
96   #endif
97 #else
98   #define LOGFILE "/var/adm/adminlog" /* logfile */
99   #define ACLFILE "/etc/adminusers"   /* acl file */
100   #define OPTFILE "/etc/adminconfig"  /* config */
101   #define MANFILE "/etc/sysadm.man"   /* online manual */
102 #endif
103
104 #if defined(__linux__)
105   #define DEFAULTSHELL "/bin/bash"
106 #else
107   #define DEFAULTSHELL "/bin/csh"
108 #endif
109
110 /* function prototypes */
111
112 void logger(char *, ...);
113 void printpriv(char *);
114 void priv(int);
115 int lockpw(void);
116 void unlockpw(void);
117 void consexit(void);
118 int getch(void);
119 void clear(void);
120 void waitkey(void);
121 void enter(char *, int);
122 void getuser(char *);
123 void getgroup(char *);
124 int getname(void);
125 int getdir(void);
126 int getquota(int *, int *);
127 int testuser(int);
128 int testgroup(void);
129 int system_default_shell_check(void);
130 void adduser(void);
131 void rmuser(void);
132 void chpass(void);
133 void chquota(void);
134 void opgroup(void);
135 void shutdown(void);
136 void manual(void);
137 void banner(void);
138 void console_check(char *);