source: tags/4.1.0/include/sh_files.h @ 490

Last change on this file since 490 was 488, checked in by katerina, 5 years ago

Fix for tickets #386 (silent check) and #387 (linux audit support).

File size: 7.1 KB
Line 
1/* SAMHAIN file system integrity testing                                   */
2/* Copyright (C) 1999, 2000 Rainer Wichmann                                */
3/*                                                                         */
4/*  This program is free software; you can redistribute it                 */
5/*  and/or modify                                                          */
6/*  it under the terms of the GNU General Public License as                */
7/*  published by                                                           */
8/*  the Free Software Foundation; either version 2 of the License, or      */
9/*  (at your option) any later version.                                    */
10/*                                                                         */
11/*  This program is distributed in the hope that it will be useful,        */
12/*  but WITHOUT ANY WARRANTY; without even the implied warranty of         */
13/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          */
14/*  GNU General Public License for more details.                           */
15/*                                                                         */
16/*  You should have received a copy of the GNU General Public License      */
17/*  along with this program; if not, write to the Free Software            */
18/*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.              */
19
20#ifndef SH_FILES_H
21#define SH_FILES_H
22
23void sh_audit_mark (const char * file);
24void sh_audit_commit ();
25void sh_audit_delete_all ();
26char * sh_audit_fetch (char * file, time_t mtime, time_t ctime, char * result, size_t rsize);
27
28struct sh_dirent {
29  char             * sh_d_name;
30  struct sh_dirent * next;
31};
32
33/* Fix the check flags
34 */
35void sh_files_fixup_mask (int class, unsigned long * check_flags);
36
37/* Dequote a filename in the config file
38 */
39char * sh_files_parse_input(const char * str_s, size_t * len);
40
41/* Check whether a file is in the config
42 */
43char * sh_files_findfile(const char * path);
44
45/* Find the most specific directory in the config
46 */
47char * sh_files_find_mostspecific_dir(const char * path);
48
49/* free a directory listing
50 */
51void kill_sh_dirlist (struct sh_dirent * dirlist);
52
53#ifdef NEED_ADD_DIRENT
54/* add an entry to a directory listing
55 */
56struct sh_dirent * addto_sh_dirlist (struct dirent * thisEntry, 
57                                     struct sh_dirent * dirlist);
58#endif
59
60/* register exceptions to hardlink check
61 */
62int sh_files_hle_reg (const char * str);
63
64/* Check for new files/dirs matching configured glob patterns.
65 */
66void sh_files_check_globPatterns();
67
68/* Check for new files (only) matching configured glob patterns.
69 */
70void sh_files_check_globFilePatterns();
71
72/* check the setup
73 */
74int sh_files_test_setup (void);
75
76/* check if allignore
77 */
78int sh_files_is_allignore (char * str);
79
80/* activate hardlink check
81 */
82int sh_files_check_hardlinks (const char * opt);
83
84/* check  rsrc fork (Mac OS X)
85 */
86int sh_files_use_rsrc(const char * str);
87
88/* set recursion depth
89 */
90int sh_files_setrec (void);
91
92/* report only once
93 */
94int sh_files_reportonce(const char * c);
95
96/* report full details
97 */
98int sh_files_fulldetail(const char * c);
99
100/* reset the 'checked' flag
101 */
102void sh_dirs_reset(void);
103
104/* reset the 'checked' flag
105 */
106void sh_files_reset(void);
107
108/* set maximum recursion level
109 */
110int sh_files_setrecursion (const char * flag_s);
111
112/* select a directory stack 2=Two, else One (standard)
113 */
114int set_dirList (int which);
115
116/* push a directory on the stack USER0
117 */
118int  sh_files_pushdir_user0 (const char * dirName);
119
120/* push a directory on the stack USER1
121 */
122int  sh_files_pushdir_user1 (const char * dirName);
123
124/* push a directory on the stack USER2
125 */
126int  sh_files_pushdir_user2 (const char * dirName);
127
128/* push a directory on the stack USER3
129 */
130int  sh_files_pushdir_user3 (const char * dirName);
131
132/* push a directory on the stack USER4
133 */
134int  sh_files_pushdir_user4 (const char * dirName);
135
136/* push a directory on the stack PRELINK
137 */
138int  sh_files_pushdir_prelink (const char * dirName);
139
140/* push a directory on the stack ATTR
141 */
142int  sh_files_pushdir_attr (const char * dirName);
143
144/* push a directory on the stack READONLY
145 */
146int  sh_files_pushdir_ro (const char * dirName);
147
148/* push a directory on the stack LOGFILE
149 */
150int  sh_files_pushdir_log (const char * dirName);
151
152/* push a directory on the stack GROWING LOGFILE
153 */
154int  sh_files_pushdir_glog (const char * dirName);
155
156/* push a directory on the stack IGNORE NONE
157 */
158int  sh_files_pushdir_noig (const char * dirName);
159
160/* push a directory on the stack IGNORE ALL
161 */
162int  sh_files_pushdir_allig (const char * dirName);
163
164
165/* push a file on the stack USER0
166 */
167int  sh_files_pushfile_user0 (const char * dirName);
168
169/* push a file on the stack USER1
170 */
171int  sh_files_pushfile_user1 (const char * dirName);
172
173/* push a file on the stack USER2
174 */
175int  sh_files_pushfile_user2 (const char * dirName);
176
177/* push a file on the stack USER3
178 */
179int  sh_files_pushfile_user3 (const char * dirName);
180
181/* push a file on the stack USER4
182 */
183int  sh_files_pushfile_user4 (const char * dirName);
184
185/* push a file on the stack PRELINK
186 */
187int  sh_files_pushfile_prelink (const char * dirName);
188
189/* push a file on the stack ATTR
190 */
191int  sh_files_pushfile_attr (const char * dirName);
192
193/* push a file on the stack READONLY
194 */
195int  sh_files_pushfile_ro (const char * dirName);
196
197/* push a file on the stack LOGFILE
198 */
199int  sh_files_pushfile_log (const char * dirName);
200
201/* push a file on the stack GROWING LOGFILE
202 */
203int  sh_files_pushfile_glog (const char * dirName);
204
205/* push a file on the stack IGNORE NONE
206 */
207int  sh_files_pushfile_noig (const char * dirName);
208
209/* push a file on the stack IGNORE ALL
210 */
211int  sh_files_pushfile_allig (const char * dirName);
212
213
214/* check directories on the stack
215 */
216unsigned long sh_dirs_chk       (int which);
217
218/* check files on the stack
219 */
220unsigned long sh_files_chk       (void);
221
222int sh_files_delglobstack (void);
223
224int sh_files_deldirstack (void);
225
226int sh_files_delfilestack (void);
227
228/* redefine policies
229 */
230int sh_files_redef_user0(const char * str);
231int sh_files_redef_user1(const char * str);
232int sh_files_redef_user2(const char * str);
233int sh_files_redef_user3(const char * str);
234int sh_files_redef_user4(const char * str);
235int sh_files_redef_prelink(const char * str);
236int sh_files_redef_readonly(const char * str);
237int sh_files_redef_loggrow(const char * str);
238int sh_files_redef_logfiles(const char * str);
239int sh_files_redef_attributes(const char * str);
240int sh_files_redef_noignore(const char * str);
241int sh_files_redef_allignore(const char * str);
242
243ShFileType sh_files_filecheck (int class, unsigned long check_flags,
244                               const char * dirName, 
245                               const char * infileName,
246                               int * reported, 
247                               int rsrcflag);
248
249int sh_files_checkdir (int iclass, unsigned long check_flags, 
250                       int idepth, char * iname, 
251                       char * relativeName);
252
253int sh_files_search_file(char * name, int * class, 
254                         unsigned long *check_flags, int * reported);
255int sh_files_search_dir(char * name, int * class, 
256                        unsigned long *check_flags, int *reported,
257                        int * rdepth);
258void sh_files_set_file_reported(const char * name);
259void sh_files_clear_file_reported(const char * name);
260
261#endif
262
263
264
265
Note: See TracBrowser for help on using the repository browser.