PATCH: veto exempt
Freddie
freddie at games.chariot.net.au
Wed Sep 22 08:28:21 GMT 1999
Hi,
This patch adds a "veto exempt" parameter which lets users/groups be exempt
from the "veto files" list. [homes] has "veto files =
/*.mp3/*.exe/*.com/*.bat/", but some people need to have these sorts of files.
Also, I've written a dynamic dns type program for Samba, example:
User "mrbloggs" connects to "mrbloggs" from "pc12.internal" (ip:
192.168.0.33). smbdyndns is called (using root preexec) with these
parameters, it then writes out a dns entry into a file (in
/var/named/smbdyndns for example) which are loaded with $INCLUDEs in the
domain files. It then runs "/etc/init.d/bind reload" to reload bind's
configuration data, and you end up with:
Name: mrbloggs.pc12.internal
Address: 192.168.0.33
Aliases: pc12.home
Reason behind this: certain students looking up sites that aren't really
acceptable in a school. This lets me enable FQDN logging in Squid and see
just who it is that's looking up junk (and wasting bandwidth). If you
didn't understand any of this, don't worry, I'm not sure I do :-)
Richard Skelton
-------------- next part --------------
diff -r -u samba-2.0.5a/source/include/proto.h samba-2.0.5a-mod/source/include/proto.h
--- samba-2.0.5a/source/include/proto.h Thu Jul 22 11:30:26 1999
+++ samba-2.0.5a-mod/source/include/proto.h Wed Sep 22 16:08:26 1999
@@ -1122,6 +1122,7 @@
char *lp_veto_files(int );
char *lp_hide_files(int );
char *lp_veto_oplocks(int );
+char *lp_veto_exempt(int );
char *lp_driverlocation(int );
BOOL lp_revalidate(int );
BOOL lp_casesensitive(int );
diff -r -u samba-2.0.5a/source/include/smb.h samba-2.0.5a-mod/source/include/smb.h
--- samba-2.0.5a/source/include/smb.h Wed Jul 21 10:55:07 1999
+++ samba-2.0.5a-mod/source/include/smb.h Wed Sep 22 15:40:28 1999
@@ -573,6 +573,7 @@
BOOL ipc;
BOOL read_only;
BOOL admin_user;
+ BOOL veto_exempt;
char *dirpath;
char *connectpath;
char *origpath;
diff -r -u samba-2.0.5a/source/param/loadparm.c samba-2.0.5a-mod/source/param/loadparm.c
--- samba-2.0.5a/source/param/loadparm.c Wed Jul 21 10:55:12 1999
+++ samba-2.0.5a-mod/source/param/loadparm.c Wed Sep 22 16:05:42 1999
@@ -284,6 +284,7 @@
char *szVetoFiles;
char *szHideFiles;
char *szVetoOplockFiles;
+ char *szVetoExempt;
char *comment;
char *force_user;
char *force_group;
@@ -384,6 +385,7 @@
NULL, /* szVetoFiles */
NULL, /* szHideFiles */
NULL, /* szVetoOplockFiles */
+ NULL, /* szVetoExempt */
NULL, /* comment */
NULL, /* force user */
NULL, /* force group */
@@ -707,6 +709,7 @@
{"veto files", P_STRING, P_LOCAL, &sDefault.szVetoFiles, NULL, NULL, FLAG_SHARE|FLAG_GLOBAL},
{"hide files", P_STRING, P_LOCAL, &sDefault.szHideFiles, NULL, NULL, FLAG_SHARE|FLAG_GLOBAL},
{"veto oplock files",P_STRING, P_LOCAL, &sDefault.szVetoOplockFiles,NULL, NULL, FLAG_SHARE|FLAG_GLOBAL},
+ {"veto exempt", P_STRING, P_LOCAL, &sDefault.szVetoExempt, NULL, NULL, FLAG_SHARE|FLAG_GLOBAL},
{"map system", P_BOOL, P_LOCAL, &sDefault.bMap_system, NULL, NULL, FLAG_SHARE|FLAG_GLOBAL},
{"map hidden", P_BOOL, P_LOCAL, &sDefault.bMap_hidden, NULL, NULL, FLAG_SHARE|FLAG_GLOBAL},
{"map archive", P_BOOL, P_LOCAL, &sDefault.bMap_archive, NULL, NULL, FLAG_SHARE|FLAG_GLOBAL},
@@ -1313,6 +1316,7 @@
FN_LOCAL_STRING(lp_veto_files,szVetoFiles)
FN_LOCAL_STRING(lp_hide_files,szHideFiles)
FN_LOCAL_STRING(lp_veto_oplocks,szVetoOplockFiles)
+FN_LOCAL_STRING(lp_veto_exempt,szVetoExempt)
FN_LOCAL_STRING(lp_driverlocation,szPrinterDriverLocation)
FN_LOCAL_BOOL(lp_revalidate,bRevalidate)
diff -r -u samba-2.0.5a/source/smbd/dir.c samba-2.0.5a-mod/source/smbd/dir.c
--- samba-2.0.5a/source/smbd/dir.c Wed Jul 21 10:55:20 1999
+++ samba-2.0.5a-mod/source/smbd/dir.c Wed Sep 22 15:45:54 1999
@@ -685,7 +685,7 @@
int l = strlen(n)+1;
/* If it's a vetoed file, pretend it doesn't even exist */
- if (use_veto && conn && IS_VETO_PATH(conn, n)) continue;
+ if (use_veto && conn && IS_VETO_PATH(conn, n) && !conn->veto_exempt) continue;
if (used + l > dirp->mallocsize) {
int s = MAX(used+l,used+2000);
diff -r -u samba-2.0.5a/source/smbd/service.c samba-2.0.5a-mod/source/smbd/service.c
--- samba-2.0.5a/source/smbd/service.c Wed Jul 21 10:55:21 1999
+++ samba-2.0.5a-mod/source/smbd/service.c Wed Sep 22 17:20:16 1999
@@ -321,7 +321,15 @@
} else {
conn->admin_user = False;
}
-
+
+ /* veto exempt check */
+ if (user_in_list(user,lp_veto_exempt(snum))) {
+ conn->veto_exempt = True;
+ DEBUG(0,("%s logged in as veto exempt user\n",user));
+ } else {
+ conn->veto_exempt = False;
+ }
+
conn->force_user = force;
conn->vuid = vuid;
conn->uid = pass->pw_uid;
-------------- next part --------------
----------------------------------------------------------------------------
Please note, I am NOT an employee of Chariot Internet.
More information about the samba-technical
mailing list