- ifelse(`
- /etc/samba/smb-shares.m4
- Copyright 2002 Jonas Smedegaard <dr@jones.dk>
- $Id: smb-shares.m4,v 1.8 2002-04-13 06:41:27 jonas Exp $
- m4 share definitions for generating Samba server smb.conf include file
- Usage: m4 -DFQDN=<FQDN> /etc/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: single word and max. 8 characters for backwards compatibility)
- <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
|