2009/184 SMB/CIFS Share Exec Properties

Alan M Wright amw at sun.com
Mon Mar 23 11:56:08 PDT 2009


On 03/23/09 10:47, Edward Pilatowicz wrote:
> having worked on frameworks with lots of callbacks, i just have one nit
> comment.
> 
> the names of the callbacks (map, and unmap) are ambigious wrt when they
> are invoked wrt their associated event.  i think it's implied that map
> will be invoked after a mapping is established,

The command is invoked during the mapping of a share, we don't specify
when it will be executed during the mapping process.  The only constraint
is that the command will have been executed before a response is returned
to the client.

> and unmap will before,

Similarly, for unmap.

Alan

> but it would be nice if the name of these callbacks was changed so that
> this was explicit.  say post-map and pre-unmap.
> ed
> 
> On Fri, Mar 20, 2009 at 03:43:37PM -0700, Jordan Brown wrote:
>> I am sponsoring the following for fast track approval.
>> The timer expires 27 March 2009.
>>
>> 1. Introduction
>>      1.1. Project/Component Working Name:
>>           SMB/CIFS share exec properties
>>      1.2. Name of Document Author/Supplier:
>>           Author:  Hoa Nguyen
>>      1.3  Date of This Document:
>>           20 March, 2009
>>
>>      A patch binding is requested for this change.
>>      This is a Committed interface.
>>
>> 4. Technical Description
>>
>> 	This fast-track proposes new service properties to support the
>> 	execution of a command or script when connecting or disconnecting
>> 	CIFS shares.  These properties are configurable with sharectl(1M)
>> 	and will be applied to all shares.  The command may be used to
>> 	perform automated administrative tasks each time a share is mapped
>> 	or disconnected, for example, to create home directories or monitor
>> 	resources.  The command will be executed using the credentials of
>> 	the smbd daemon, which, by default, is root/sys.  The command
>> 	will be executed using one of the exec() functions.  The content
>> 	of the environment is not specified.
>>
>> 	See also 6766364 Add scripting support to Autohome.
>>
>> 	In order to configure properties using sharectl(1M), a user must
>> 	be the superuser or assume an equivalent role to obtain the
>> 	solaris.smf.value.smb and solaris.smf.manage.smb RBAC
>> 	authorizations, or use the SMB Management RBAC profile, which
>> 	is part of the File System Management profile.
>>
>> 	Additional privileges are required to allow the smbd process to
>> 	fork a child process and execute the commands.  The privileges
>> 	will be enabled in the effective set and inheritable set when
>> 	needed for command execution.  Otherwise, they will be disabled.
>>
>> 	The following privileges are enabled for the exec'd process:
>> 	PRIV_FILE_CHOWN, PRIV_FILE_CHOWN_SELF, PRIV_FILE_DAC_EXECUTE,
>> 	PRIV_FILE_DAC_READ, PRIV_FILE_DAC_SEARCH, PRIV_FILE_DAC_WRITE,
>> 	PRIV_FILE_LINK_ANY, PRIV_FILE_OWNER, PRIV_FILE_SETID,
>> 	PRIV_PROC_EXEC, PRIV_PROC_FORK, PRIV_PROC_INFO, PRIV_PROC_OWNER,
>> 	PRIV_PROC_SESSION, PRIV_PROC_SETID, PRIV_SYS_CONFIG,
>> 	PRIV_SYS_LINKDIR, and PRIV_SYS_MOUNT.
>>
>> 	The service property names and values are as follows:
>>
>> 	map		The value is a command to be executed when connecting
>> 			to the share.  The command can take the following
>> 			arguments, which will be substituted when the command
>> 			is exec'd as described below.
>>
>> 			%U - Windows username.
>>
>> 			%D - Name of the domain or workgroup of %U.
>>
>> 			%h - The server hostname.
>>
>> 			%M - The client hostname, or "" if not available.
>>
>> 			%L - The server NetBIOS name.
>>
>> 			%m - The client NetBIOS name, or "" if not available.
>> 			This option is only valid for NetBIOS connections
>> 			(port 139).
>>
>> 			%I - The IP address of the client machine.
>>
>> 			%i - The local IP address to which the client is
>> 			connected.
>>
>> 			%S - The name of the share.
>>
>> 			%P - The root directory of the share.
>>
>> 			%u - The UID of the Unix user.
>>
>> 	unmap		The value is a command to be executed when
>> 			disconnecting the share.  The command can take the
>> 			same substitutions listed on the map property.
>>
>> 	disposition	A value that controls whether to disconnect the share
>> 			or proceed if the map command fails.  The disposition
>> 			property only has meaning when the map property has
>> 			been set.  Otherwise it will have no effect.
>>
>> 			disposition = [ continue | terminate ]
>>
>> 			continue	Proceed with share connection if the
>> 					map command fails.  This is the default
>> 					in the event that disposition is not
>> 					specified.
>>
>> 			terminate	Disconnect the share if the map
>> 					command fails.
>>
>> 	Examples of setting these properties with sharectl(1M):
>>
>> 		sharectl  set -p map="/tmp/map_script %U" smb
>> 		sharectl  set -p unmap=/tmp/unmap_script smb
>> 		sharectl  set -p disposition=terminate smb
>>
>> 	For example,
>>
>> 		sharectl  set -p map="/tmp/map_script %U" smb
>>
>> 	would be invoked with arguments of the form:
>>
>> 		arg0 = /tmp/map_script
>> 		arg1 = <Windows username>
>> 		arg2 = NULL
>>
>> 6. Resources and Schedule
>>      6.4. Steering Committee requested information
>>     	6.4.1. Consolidation C-team Name:
>> 		ON
>>      6.5. ARC review type: FastTrack
>>      6.6. ARC Exposure: open
> 




More information about the opensolaris-arc mailing list