summaryrefslogtreecommitdiff
path: root/samba/smb-shares.conf.m4
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2002-04-22 11:14:45 +0000
committerJonas Smedegaard <dr@jones.dk>2002-04-22 11:14:45 +0000
commitc2217fa4ff6405386019b9659d3ffae8d2d253fd (patch)
treefe37eeee4a4f225acbc05105b45c55be84808c2c /samba/smb-shares.conf.m4
parente9f34cfa51f203e62887c7520ce3b7e5425f4e07 (diff)
Rename smb-shares.m4 to the more sensible smb-shares.conf.m4 - and correct a fatal quote in the comment area.
Diffstat (limited to 'samba/smb-shares.conf.m4')
-rw-r--r--samba/smb-shares.conf.m4140
1 files changed, 140 insertions, 0 deletions
diff --git a/samba/smb-shares.conf.m4 b/samba/smb-shares.conf.m4
new file mode 100644
index 0000000..243e894
--- /dev/null
+++ b/samba/smb-shares.conf.m4
@@ -0,0 +1,140 @@
+ifelse(`
+/etc/samba/smb-shares.m4
+Copyright 2002 Jonas Smedegaard <dr@jones.dk>
+
+$Id: smb-shares.conf.m4,v 1.1 2002-04-22 11:14:45 jonas Exp $
+
+m4 share definitions for generating Samba server smb.conf include file
+
+Usage: m4 -DFQDN=<FQDN> /etc/local-COMMON/samba/smb-shares.conf.m4 > /etc/samba/smb-shares.conf
+
+Depend on file /etc/local-COMMON/file-<FQDN>.m4 containing lines of
+the following syntax:
+ _dir(<path>,<uid>,<gid>,<modes>)dnl
+ _homefiles(<os>,<mount>,<desc>,<path>[,ro])dnl
+ _files(<os>,<mount>,<desc>,<path>,<uid>,<gid>,<modes>[,ro[,<group>]|,rw,<group>[,<othergroup>]])dnl
+where
+ <os>: Client operating systems (mac|win|any)
+ <mount>: Mount point name
+ Samba: Use single word and max. 8 characters for backwards compatibility
+ Some mount points are handled specially:
+ "netlogon" has browsing disabled
+ "userprofiles" pre-creates user subdirectory mode 700
+ "reference" allows guests
+ "homes" pre-creates directory mode 755 (FIXME: that is bad!!!)
+ <desc>: Mount point description (iso8859-1 is (fully?) supported).
+ <uid>: user name of mountpoint owner
+ <gid>: group name of mountpoint owner
+ <modes>: Numeric access modes of mount point
+ <path>: Full path to mount point
+ <group>: Primary group with access to mountpoint (default readonly). Public access if omitted
+ <othergroup>: Secondary group with readonly access
+
+Example:
+
+ _dir(/home/fsadmin/COMMON,fsadmin,fsadmin,755)dnl
+ _homefiles(win,homes,Personal files,%H/pc))
+ _homefiles(mac,,Personal files,~/mac))
+ _files(win,soft,softshare,/home/fsadmin/COMMON/software,fsadmin,fsadmin,775)dnl
+ _printer(win,LW,Networkprinter queue for Apple LaserWriter 16/600,/tmp,lw)
+
+')dnl
+changequote(<, >)dnl
+define(<_veto_mac>, </.AppleDouble/.AppleDesktop/Network Trash Folder/DesktopFolderDB/resource.frk/Icon^M/TheVolumeSettingsFolder/>)dnl
+define(<_warn>,
+< // WARNING: $1
+>)dnl
+define(<_masks>,
+< create mask = $1
+ directory mask = $2
+>)dnl
+define(<_pre_mkdir>,
+< root preexec = '/bin/mkdir $1 \
+ /bin/chown $2 $1 \
+ /bin/chmod $3 $1'
+>)dnl
+define(<_dir>, <>)dnl
+define(<_files>,
+<ifelse($1,win,
+undefine(<_mkdir>)dnl
+undefine(<_group_read>)dnl
+undefine(<_world_read>)dnl
+undefine(<_user_write>)dnl
+undefine(<_group_write>)dnl
+[$2]
+ path = $4
+ifelse($3,,,
+< comment = $3
+>)ifelse($2,<netlogon>,
+< browseable = no
+>,
+ $2,<userprofiles>,
+<dnl
+define(<_mkdir>, <$4/%U>)dnl
+define(<_chown>, <%U>)dnl
+define(<_chmod>, <700>)dnl
+>,
+ $2,<reference>,
+< guest ok = yes
+>,
+ $2,<homes>,
+<dnl
+define(<_mkdir>, <$4>)dnl
+define(<_chown>, <%S>)dnl
+define(<_chmod>, <644>)dnl
+define(<_user_write>)dnl
+define(<_group_read>)dnl
+define(<_world_read>)dnl
+>,
+<>)dnl
+ifdef(<_mkdir>,
+_pre_mkdir(<_mkdir>, <_chown>, <_chmod>)dnl
+)dnl
+ifdef($8,
+ ifelse($8,ro,
+<dnl
+define(<_group_read>)dnl
+>,
+ $8,rw,
+ ifdef($9,
+ ifelse($9,,
+ _warn(<share group is "rw" but no group specified>),
+<dnl
+define(<_user_write>)dnl
+define(<_group_write>)dnl
+>)),
+ _warn(<share group is wrong. Must be "ro" or "rw">)dnl
+))dnl
+ifdef(<_user_write>,
+< writeable = yes
+>ifdef(<_group_write>,
+ ifdef(<_world_read>,
+ _masks(0664,0775),
+ _masks(0660,0770)),
+ifdef(<_group_read>,
+ ifdef(<_world_read>,
+ _masks(0644,0755),
+ _masks(0640,0750)),
+ _masks(0600,0700))dnl
+ifdef(<_veto>,
+< delete veto files = Yes
+>)dnl
+),
+dnl ***user read, group read***(?)
+dnl ***user read***
+)dnl
+ifelse($9,,,
+< valid users = @$9
+>ifdef(<_group_write>,
+< force group = +$9
+>))dnl
+ifdef(<_veto>,
+< veto files = _veto_mac
+>)dnl
+)dnl
+>)dnl
+define(<_homefiles>,
+<ifelse($1,win,
+<_files($1,$2,$3,$4)>)>)dnl
+dnl
+include(/etc/local-COMMON/file-FQDN.m4)dnl