- ifelse(`
- /etc/netatalk/AppleVolumes.default.m4
- Copyright 2002 Jonas Smedegaard <dr@jones.dk>
- $Id: AppleVolumes.default.m4,v 1.1 2002-08-27 01:19:36 jonas Exp $
- m4 share definitions for generating Netatalk server AppleVolumes.default file
- Usage: m4 -DFQDN=<FQDN> /etc/local-COMMON/netatalk/AppleVolumes.default.m4 > /etc/netatalk/AppleVolumes.default
- 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
- Some mount points are handled specially:
- "netlogon" has browsing and share modes disabled
- "userprofiles" sets "force user" and pre-creates user subdirectory mode 700
- "reference" allows guests
- "homes" has read/write access and pre-creates directory mode 750
- Samba: Use single word and max. 8 characters for WfW compatibility
- <desc>: Mount point description. Full(?) support for iso8859-1.
- <path>: Full path to mount point directory
- <uid>: user name of owner of mount point directory
- <gid>: group name of owner of mount point directory
- <modes>: Numeric access modes of mount point directory
- ro|rw|rop|rwp: Read-only or read/write access to mount point, and wether it should be private (not publically announced).
- Read-only access if undefined.
- _homefiles are always private.
- _homefiles are by default read-only, except "homes" (see above).
- <group>: Primary group with access to mountpoint.
- If mount point has access "rw" then primary group has read/write access as well.
- <othergroup>: Secondary group with readonly access
- Example:
- _dir(/home/fsadmin/COMMON,fsadmin,fsadmin,755)dnl
- _files(win,netlogon,Network logon,/etc/samba/netlogon,root,root,755,ro)
- _files(win,userprofiles,User profiles,/home/fsadmin/COMMON/samba/userprofiles,root,root,755)
- _files(win,reference,DEBIAN: Samba Linux server,/home/fsadmin/COMMON/reference)
- _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)
- TODO:
- Support for netatalk is not yet implemented.
- <othergroup> is not yet implemented.
- Get rid of <os>: <othergroup> is now 10nth parameter which is only available in GNU m4.
- All _homefiles (including "homes") should probably have similar access default (read-only).
- ')dnl
- changequote(<, >)dnl
- define(<_veto_mac>, </.AppleDouble/.AppleDesktop/Network Trash Folder/DesktopFolderDB/resource.frk/Icon^M/TheVolumeSettingsFolder/>)dnl
- define(<_warn>,
- < # WARNING: $1
- # >)dnl
- define(<_dir>, <>)dnl
- dnl *************
- dnl *** files ***
- dnl *************
- define(<_files>,
- <ifelse($1,mac,
- undefine(<_group_read>)dnl
- undefine(<_world_read>)dnl
- undefine(<_user_write>)dnl
- undefine(<_group_write>)dnl
- $4 ifelse(<$3>,,<"$2">,<"<$3>">)dnl
- ifdef($8,
- ifelse($8,ro,
- <define(<_group_read>)>,
- $8,rop,
- <define(<_group_read>)>,
- $8,rw,
- <define(<_user_write>)dnl
- ifdef($9,
- ifelse($9,,,
- define(<_group_write>)))>,
- $8,rwp,
- <define(<_user_write>)>,
- _warn(<share access is wrong. Must be either "ro", "rop", "rw" or "rwp">)dnl
- ))dnl
- ifdef(<_user_write>,
- ifdef(<_group_write>,
- ifdef(<_world_read>,,),
- ifdef(<_group_read>,
- ifdef(<_world_read>,,),
- )),
- dnl ***user read, group read***(?)
- dnl ***user read***
-
- )dnl
- ifelse($9,,,
- < allow:@$9> ifdef(<_user_write>,,
- < ro>))dnl
- ifdef(<_veto>,
- < veto files = _veto_mac
- >)dnl
- )dnl
- >)dnl
- dnl *****************
- dnl *** homefiles ***
- dnl *****************
- define(<_homefiles>,
- <ifelse($1,mac,
- define(<_homefiles_access>, <rwp>)dnl
- ifdef($5,
- ifelse($5,ro,
- define(<_homefiles_access>, <rop>)))dnl
- <_files($1,$2,<$3>,$4,,,,_homefiles_access)>dnl
- )>)dnl
- define(<_printer>, <>)dnl
- >)dnl
- dnl
- include(/etc/local-COMMON/file-FQDN.m4)dnl
|