control: AddInstallable = ( samba samba_reload ) # # Variables for shares # You can change the paths here and it will be changed both in # the conf file and in the filesystem - But once it is implemented, # it is not wise to change it - the data in the shares doesn't get # moved! # You can change the rights on the shares in the "directories:" # section. # netlogshare = ( /etc/samba/netlogon ) commonsharedir = ( /home/fsadmin/COMMON ) datashare = ( /home/fsadmin/COMMON/documents ) softshare = ( /home/fsadmin/COMMON/software ) adminshare = ( /home/fsadmin/COMMON/admin ) profshare = ( /home/fsadmin/COMMON/samba/userprofiles ) privpcshare = ( .pcshare ) privmacshare = ( .macshare ) privxchngshare = ( .xchangeshare ) # # Administrative user and group # adminuser = ( fsadmin ) admingrp = ( fsadmin ) editfiles: samba:: { /etc/samba/smb-shares-$(site).conf # # This file contains the shares common to a site. # We check if the proper sections are there and add them if they # isn't. We don't check the file line for line. # AutoCreate # # [netlogon] # BeginGroupIfNoLineMatching "^\[netlogon\]" Append '[netlogon]' Append ' comment = Network logon' Append ' path = $(netlogshare)' Append ' browsable = no' Append ' writeable = no' Append ' share modes = no' EndGroup # # [userprofiles] # BeginGroupIfNoLineMatching "^\[userprofiles\]" Append '[userprofiles]' Append ' path = $(profshare)' Append ' force user = %u' Append ' browsable = yes' Append ' writable = yes' Append ' root preexec = '/bin/mkdir $(profshare)/%U \' Append ' /bin/chown %U $(profshare)/%U \' Append ' /bin/chmod 700 $(profshare)/%U'' EndGroup # # [homes] # BeginGroupIfNoLineMatching "^\[homes\]" Append '[homes]' Append ' path = /home/%u/$(privpcshare)' Append ' browsable = no' Append ' writable = yes' Append ' root preexec = '/bin/mkdir /home/%u/$(privpcshare) \' Append ' /bin/chown %U /home/%u/$(privpcshare) \' Append ' /bin/chmod 644 /home/%u/$(privpcshare)'' EndGroup # # [programmer] # BeginGroupIfNoLineMatching "^\[software\]" Append '[software]' Append ' path = $(softshare)' Append ' comment = Fælles software' Append ' browsable = yes' Append ' guest ok = no' Append ' writeable = yes' Append ' create mask = 0660' Append ' directory mask = 0770' Append ' valid users = @$(admingrp)' Append ' force group = +$(admingrp)' Append ' delete veto files = Yes' Append ' veto files = /.AppleDouble/.AppleDesktop/Network Trash Folder/DesktopFolderDB/resource.frk/Icon^M/TheVolumeSettingsFolder/' EndGroup # # [faellesdrev] # BeginGroupIfNoLineMatching "^\[faellesdrev\]" Append '[faellesdrev]' Append ' path = $(datashare)' Append ' comment = Fælles drev for delte filer' Append ' browsable = yes' Append ' guest ok = no' Append ' writeable = yes' Append ' create mask = 0660' Append ' directory mask = 0770' Append ' valid users = @$(admingrp)' Append ' force group = +$(admingrp)' Append ' delete veto files = Yes' Append ' veto files = /.AppleDouble/.AppleDesktop/Network Trash Folder/DesktopFolderDB/resource.frk/Icon^M/TheVolumeSettingsFolder/' EndGroup # # [dokumenter] # BeginGroupIfNoLineMatching "^\[admin\]" Append '[admin]' Append ' path = $(adminshare)' Append ' comment = Dokumentation og adminværktøjer' Append ' browsable = yes' Append ' guest ok = yes' Append ' writeable = no' Append ' valid users = @$(admingrp)' Append ' force group = +$(admingrp)' EndGroup DefineClasses "samba_reload" } samba_reload:: { /etc/samba/smb-shares-$(site).conf LocateLineMatching "^; EDITED BY CFENGINE .*" ReplaceAll '; EDITED BY CFENGINE .*$' With '; EDITED BY CFENGINE $(date)' CatchAbort BeginGroupIfNoMatch "^; EDITED BY CFENGINE .*" Append '; EDITED BY CFENGINE $(date)' EndGroup } directories: any:: $(commonsharedir) mode=755 owner=$(adminuser) group=$(admingrp) $(softshare) mode=775 owner=$(adminuser) group=$(admingrp) $(datashare) mode=775 owner=$(adminuser) group=$(admingrp) samba:: $(netlogshare) mode=755 owner=root group=root $(profshare) mode=775 owner=$(adminuser) group=$(admingrp) $(adminshare) mode=755 owner=$(adminuser) group=$(admingrp) processes: "smbd" restart "/etc/init.d/samba restart" shellcommands: samba_reload:: "/etc/init.d/samba force-reload"