DirectoryService.8   [plain text]


.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
.\"See Also:
.\"man mdoc.samples for a complete listing of options
.\"man mdoc for the short list of editing options
.\"/usr/share/misc/mdoc.template
.Dd Feb 21, 2003       \" DATE 
.Dt DirectoryService 8       \" Program name and manual section number 
.Os MacOSX
.Sh NAME                 \" Section Header - required - don't modify 
.Nm DirectoryService 
.\" The following lines are read in generating the apropos(man -k) database. Use only key
.\" words here as the database is built based on the words here and in the .ND line. 
.\" Use .Nm macro to designate other names for the documented program.
.Nd DirectoryService daemon (a part of MacOS X's Open Directory architecture)
.Sh SYNOPSIS             \" Section Header - required - don't modify
.Nm
.Op Fl hv         \" [-f path] 
.Sh DESCRIPTION          \" Section Header - required - don't modify
Apple's Open Directory architecture includes source code for both directory client access and directory servers. Open Directory forms the foundation of how Mac OS X accesses all authoritative configuration information (users, groups, mounts, managed desktop data, etc.). Mac OS X obtains this information via abstraction APIs, enabling use of virtually any directory system.  Configuration of Open Directory is done through the Directory Access applications in /Applications/Utilities.  This application can configure plugin settings, including turning on/off various directory services.
.Pp
.Nm Open Directory Access
.Pp
Directory Services is a core part of the Open Directory technology. Directory Services provides a client read/write/authentication API abstraction for accessing directory-based data. Directory Services consists of an access API, and an API daemon, and a plug-in API.
.Pp
An additional element of Open Directory is the existing Darwin component of lookupd that provides a read-only abstraction for accessing all BSD configuration information. Both lookupd and Directory Services work in conjunction with each other via the DSAgent to provide authoritative and consistent configuration information to all processes running on Mac OS X regardless of which Directory API they are using. The source code for DSAgent is also available.
.Pp
More information can be accessed from the Darwin Open Directory Page: http://developer.apple.com/darwin/projects/opendirectory/
.Pp
.Nm Open Directory Servers
.Pp
Apple's Open Directory Servers are OpenLDAP and NetInfo. OpenLDAP and NetInfo are included as part of Mac OS X Desktop and Server, and are also included with Darwin. Both OpenLDAP and NetInfo provide a robust and scalable platform for serving directory based configuration information for both stand-alone and networked CPUs. OpenLDAP and NetInfo share the same datastore and both separately consist of:
.Bl -bullet -offset indent
.It
Access API
.It
Server process
.It
Command line tools for displaying and modifying the contents of the Directory Server data.
.El
.Pp
.Nm Documentation
.Pp
Directory Services Access API and Plug-in API is documented at: http://developer.apple.com/techpubs/macosx/Networking/
.Pp
The headers for the DirectoryService APIs can also be found in the following location:
.Pp
/System/Library/Frameworks/DirectoryService.framework/Headers/
.Pp
.Sh OPTIONS
.Pp
The options are as follows:
.Pp
.Bl -tag -width -indent  \" Differs from above in -compact tag removed 
.It Fl h                 \"-a flag as a list item
Display list of options
.It Fl v                 \"-a flag as a list item
Display the release version.
.El                      \" Ends the list
.Pp
.Sh PLUGINS
The following plugins can be managed using the Directory Access application.
.Pp
.Bl -bullet -offset indent  \" Differs from above in -compact tag removed 
.It
BSD (Flat File and NIS)
.It
NetInfo
.It
LDAPv3
.It
Search
.It
SMB
.It
SLP
.It
Rendezvous (zero-conf)
.It
Appletalk
.It
PasswordServer
.El                      \" Ends the list
.Pp
.\" The following are optional section headers. Remove the comment tag to use.
.\" .Sh RETURN VALUES    \"Sections 2 and 3
.\" .Sh ENVIRONMENT      \"Sections 1, 6, 7, and 8
.\" .Sh FILES
.\" .Sh EXAMPLES
.\" .Ev PAGER
.Sh DIAGNOSTICS      \"Sections 1, 6, 7, and 8
There are two helpful signals you can send to the DirectoryService daemon to help diagnose problems you may be having.  (Example: % sudo killall -USR1 DirectoryService).  USR2 logging automatically turns off after 5 minutes.
.Pp
.Bl -bullet -offset indent  \" Differs from above in -compact tag removed 
.It
USR1
.Pp
Turns Debug Logging (on/off)
.Pp
See /Library/Logs/DirectoryService/DirectoryService.debug.log
.It
USR2
.Pp
Turns API Logging (on/off)
.Pp
See /var/log/system.log
.El                      \" Ends the list
.Pp
.Sh ERRORS           \"Sections 2 and 3
.Nm From <DirectoryService/DirServiceTypes.h>
.Pp
	eDSNoErr						=	0
.Pp
.Pp
	eDSOpenFailed					=	-14000
.Pp
	eDSCloseFailed					=	-14001
.Pp
.Pp
	eDSOpenNodeFailed				=	-14002
.Pp
	eDSBadDirRefences				=	-14003
.Pp
	eDSNullRecordReference			= 	-14004
.Pp
	eDSMaxSessionsOpen				=	-14005
.Pp
	eDSCannotAccessSession 			=	-14006
.Pp
	eDSDirSrvcNotOpened 			=	-14007
.Pp
	eDSNodeNotFound				=	-14008
.Pp
	eDSUnknownNodeName				=	-14009
.Pp
.Pp
	eDSRegisterCustomFailed			=	-14010
.Pp
	eDSGetCustomFailed				=	-14011
.Pp
	eDSUnRegisterFailed				=	-14012
.Pp
.Pp
	eDSAllocationFailed				=	-14050
.Pp
	eDSDeAllocateFailed				=	-14051
.Pp
	eDSCustomBlockFailed			=	-14052
.Pp
	eDSCustomUnblockFailed			=	-14053
.Pp
	eDSCustomYieldFailed			=	-14054
.Pp
.Pp
	eDSCorruptBuffer				=	-14060
.Pp
	eDSInvalidIndex				=	-14061
.Pp
	eDSIndexOutOfRange				=	-14062
.Pp
	eDSIndexNotFound				=	-14063
.Pp
	eDSCorruptRecEntryData			=	-14065
.Pp
.Pp
	eDSRefSpaceFull				=	-14069
.Pp
	eDSRefTableAllocError			=	-14070
.Pp
	eDSInvalidReference				=	-14071
.Pp
	eDSInvalidRefType				=	-14072
.Pp
	eDSInvalidDirRef				=	-14073
.Pp
	eDSInvalidNodeRef				=	-14074
.Pp
	eDSInvalidRecordRef				=	-14075
.Pp
	eDSInvalidAttrListRef			=	-14076
.Pp
	eDSInvalidAttrValueRef			=	-14077
.Pp
	eDSInvalidContinueData			=	-14078
.Pp
	eDSInvalidBuffFormat			=	-14079
.Pp
	eDSInvalidPatternMatchType		=	-14080
.Pp
	eDSRefTableError				=	-14081
.Pp
	eDSRefTableNilError					=	-14082,
.Pp
	eDSRefTableIndexOutOfBoundsError	=	-14083,
.Pp
	eDSRefTableEntryNilError			=	-14084,
.Pp
	eDSRefTableCSBPAllocError			=	-14085,
.Pp
	eDSRefTableFWAllocError				=	-14086,
.Pp
	eDSAuthFailed					=	-14090
.Pp
	eDSAuthMethodNotSupported		=	-14091
.Pp
	eDSAuthResponseBufTooSmall		=	-14092
.Pp
	eDSAuthParameterError			=	-14093
.Pp
	eDSAuthInBuffFormatError			=	-14094
.Pp
	eDSAuthNoSuchEntity				=	-14095
.Pp
	eDSAuthBadPassword				=	-14096
.Pp
	eDSAuthContinueDataBad			=	-14097
.Pp
	eDSAuthUnknownUser				=	-14098
.Pp
	eDSAuthInvalidUserName			=	-14099
.Pp
	eDSAuthCannotRecoverPasswd		=	-14100
.Pp
	eDSAuthFailedClearTextOnly		=	-14101
.Pp
	eDSAuthNoAuthServerFound			=	-14102
.Pp
	eDSAuthServerError				=	-14103
.Pp
	eDSInvalidContext				=	-14104
.Pp
	eDSBadContextData				=	-14105
.Pp
.Pp
	eDSPermissionError				=	-14120
.Pp
	eDSReadOnly					=	-14121
.Pp
	eDSInvalidDomain				=	-14122
.Pp
	eNetInfoError					=	-14123
.Pp
.Pp
	eDSInvalidRecordType			=	-14130
.Pp
	eDSInvalidAttributeType			=	-14131
.Pp
	eDSInvalidRecordName			=	-14133
.Pp
	eDSAttributeNotFound			=	-14134
.Pp
	eDSRecordAlreadyExists			=	-14135
.Pp
	eDSRecordNotFound				=	-14136
.Pp
	eDSAttributeDoesNotExist			=	-14137
.Pp
.Pp
	eDSNoStdMappingAvailable			=	-14140
.Pp
	eDSInvalidNativeMapping			=	-14141
.Pp
	eDSSchemaError					=	-14142
.Pp
	eDSAttributeValueNotFound		=   -14143
.Pp
.Pp
	eDSVersionMismatch				=   -14149
.Pp
	eDSPlugInConfigFileError			=	-14150
.Pp
	eDSInvalidPlugInConfigData		=	-14151
.Pp
.Pp
	eDSAuthNewPasswordRequired		=	-14161
.Pp
	eDSAuthPasswordExpired			=	-14162
.Pp
	eDSAuthPasswordQualityCheckFailed	=	-14165
.Pp
	eDSAuthAccountDisabled			=	-14167
.Pp
	eDSAuthAccountExpired			=	-14168
.Pp
	eDSAuthAccountInactive			=	-14169
.Pp
	eDSAuthPasswordTooShort			=	-14170
.Pp
	eDSAuthPasswordTooLong			=	-14171
.Pp
	eDSAuthPasswordNeedsLetter		=	-14172
.Pp
	eDSAuthPasswordNeedsDigit		=	-14173
.Pp
.Pp
	eDSNullParameter				=	-14200
.Pp
	eDSNullDataBuff				=	-14201
.Pp
	eDSNullNodeName				=	-14202
.Pp
	eDSNullRecEntryPtr				=	-14203
.Pp
	eDSNullRecName					=	-14204
.Pp
	eDSNullRecNameList				=	-14205
.Pp
	eDSNullRecType					=	-14206
.Pp
	eDSNullRecTypeList				=	-14207
.Pp
	eDSNullAttribute				=	-14208
.Pp
	eDSNullAttributeAccess			=	-14209
.Pp
	eDSNullAttributeValue			=	-14210
.Pp
	eDSNullAttributeType			=	-14211
.Pp
	eDSNullAttributeTypeList			=	-14212
.Pp
	eDSNullAttributeControlPtr		=	-14213
.Pp
	eDSNullAttributeRequestList		=	-14214
.Pp
	eDSNullDataList				=	-14215
.Pp
	eDSNullDirNodeTypeList			= 	-14216
.Pp
	eDSNullAutMethod				= 	-14217
.Pp
	eDSNullAuthStepData				=	-14218
.Pp
	eDSNullAuthStepDataResp			=	-14219
.Pp
	eDSNullNodeInfoTypeList			=	-14220
.Pp
	eDSNullPatternMatch				=	-14221
.Pp
	eDSNullNodeNamePattern			=	-14222
.Pp
	eDSNullTargetArgument			=	-14223
.Pp
.Pp
	eDSEmptyParameter				=	-14230
.Pp
	eDSEmptyBuffer					=	-14231
.Pp
	eDSEmptyNodeName				=	-14232
.Pp
	eDSEmptyRecordName				=	-14233
.Pp
	eDSEmptyRecordNameList			=	-14234
.Pp
	eDSEmptyRecordType				=	-14235
.Pp
	eDSEmptyRecordTypeList			=	-14236
.Pp
	eDSEmptyRecordEntry				=	-14237
.Pp
	eDSEmptyPatternMatch			=	-14238
.Pp
	eDSEmptyNodeNamePattern			=	-14239
.Pp
	eDSEmptyAttribute				=	-14240
.Pp
	eDSEmptyAttributeType			=	-14241
.Pp
	eDSEmptyAttributeTypeList		=	-14242
.Pp
	eDSEmptyAttributeValue			=	-14243
.Pp
	eDSEmptyAttributeRequestList		=	-14244
.Pp
	eDSEmptyDataList				=	-14245
.Pp
	eDSEmptyNodeInfoTypeList			=	-14246
.Pp
	eDSEmptyAuthMethod				=	-14247
.Pp
	eDSEmptyAuthStepData			=	-14248
.Pp
	eDSEmptyAuthStepDataResp			=	-14249
.Pp
	eDSEmptyPattern2Match			=	-14250
.Pp
.Pp
	eDSBadDataNodeLength			=	-14255
.Pp
	eDSBadDataNodeFormat			=	-14256
.Pp
	eDSBadSourceDataNode			=	-14257
.Pp
	eDSBadTargetDataNode			=	-14258
.Pp
.Pp
	eDSBufferTooSmall				=	-14260
.Pp
	eDSUnknownMatchType				=	-14261
.Pp
	eDSUnSupportedMatchType			=	-14262
.Pp
	eDSInvalDataList				= 	-14263
.Pp
	eDSAttrListError				=	-14264
.Pp
.Pp
	eServerNotRunning				=	-14270
.Pp
	eUnknownAPICall				=	-14271
.Pp
	eUnknownServerError				=	-14272
.Pp
	eUnknownPlugIn					= 	-14273
.Pp
	ePlugInDataError				=	-14274
.Pp
	ePlugInNotFound				=	-14275
.Pp
	ePlugInError					= 	-14276
.Pp
	ePlugInInitError				=	-14277
.Pp
	ePlugInNotActive				=	-14278
.Pp
	ePlugInFailedToInitialize		=	-14279
.Pp
	ePlugInCallTimedOut				=	-14280
.Pp
.Pp
	eNoSearchNodesFound				=	-14290
.Pp
	eSearchPathNotDefined			=	-14291
.Pp
	eNotHandledByThisNode			=	-14292
.Pp
.Pp
	eIPCSendError					=	-14330
.Pp
	eIPCReceiveError				=	-14331
.Pp
	eServerReplyError				=	-14332
.Pp
.Pp
	eDSTCPSendError				=	-14350
.Pp
	eDSTCPReceiveError				=	-14351
.Pp
	eDSTCPVersionMismatch			=	-14352
.Pp
	eDSIPUnreachable				=	-14353
.Pp
	eDSUnknownHost					=	-14354
.Pp
.Pp
	ePluginHandlerNotLoaded			=	-14400
.Pp
	eNoPluginsLoaded				=	-14402
.Pp
	ePluginAlreadyLoaded			=	-14404
.Pp
	ePluginVersionNotFound			=	-14406
.Pp
	ePluginNameNotFound				=	-14408
.Pp
	eNoPluginFactoriesFound			=	-14410
.Pp
	ePluginConfigAvailNotFound		=	-14412
.Pp
	ePluginConfigFileNotFound		=	-14414
.Pp
.Pp
	eCFMGetFileSysRepErr			=	-14450
.Pp
	eCFPlugInGetBundleErr			=	-14452
.Pp
	eCFBndleGetInfoDictErr			=	-14454
.Pp
	eCFDictGetValueErr				=	-14456
.Pp
.Nm Authentication Errors
.Pp
	eDSServerTimeout				=	-14470
.Pp
	eDSContinue					=	-14471
.Pp
	eDSInvalidHandle				=	-14472
.Pp
	eDSSendFailed					=	-14473
.Pp
	eDSReceiveFailed				=	-14474
.Pp
	eDSBadPacket					=	-14475
.Pp
	eDSInvalidTag					=	-14476
.Pp
	eDSInvalidSession				=	-14477
.Pp
	eDSInvalidName					=	-14478
.Pp
	eDSUserUnknown					=	-14479
.Pp
	eDSUnrecoverablePassword			=	-14480
.Pp
	eDSAuthenticationFailed			=	-14481
.Pp
	eDSBogusServer					=	-14482
.Pp
	eDSOperationFailed				=	-14483
.Pp
	eDSNotAuthorized				=	-14484
.Pp
	eDSNetInfoError				=	-14485
.Pp
	eDSContactMaster				=	-14486
.Pp
	eDSServiceUnavailable			=	-14487
.Pp
.Pp
	eFWGetDirNodeNameErr1			=	-14501
.Pp
	eFWGetDirNodeNameErr2			=	-14502
.Pp
	eFWGetDirNodeNameErr3			=	-14503
.Pp
	eFWGetDirNodeNameErr4			=	-14504
.Pp
.Pp
.Nm Errors received in the range -14700 : -14780 denote specific server errors.
.Pp
.Nm Contact Directory Services Server support when these errors are encountered 
.Pp
	eParameterSendError				=	-14700
.Pp
	eParameterReceiveError			=	-14720
.Pp
.Pp
	eServerSendError				=	-14740
.Pp
	eServerReceiveError				=	-14760
.Pp
.Pp
	eMemoryError					=	-14900
.Pp
	eMemoryAllocError				=	-14901
.Pp
	eServerError					=	-14910
.Pp
	eParameterError				= 	-14915
.Pp
.Pp
.Nm  Server response errors
.Pp
(These errors indicate that the plug-in or server did not return the required data)
.Pp
	eDataReceiveErr_NoDirRef			=	-14950
.Pp
	// No tDirReference returned
.Pp	
	eDataReceiveErr_NoRecRef			=	-14951
.Pp
	// No tRecordReference returned
.Pp	
	eDataReceiveErr_NoAttrListRef		=	-14952
.Pp
	// No tAttributeListRef returned
.Pp	
	eDataReceiveErr_NoAttrValueListRef	=	-14953
.Pp
	// No tAttributeValueListRef returned
.Pp	
	eDataReceiveErr_NoAttrEntry		=	-14954
.Pp
	// No tAttributeEntry returned
.Pp	
	eDataReceiveErr_NoAttrValueEntry	=	-14955
.Pp
	// No tAttributeValueEntry returned
.Pp	
	eDataReceiveErr_NoNodeCount		=	-14956
.Pp
	// No node Count returned
.Pp
	eDataReceiveErr_NoAttrCount		=	-14957
.Pp
	// No attribute count returned
.Pp	
	eDataReceiveErr_NoRecEntry		=	-14958
.Pp
	// No tRecordEntry returned
.Pp	
	eDataReceiveErr_NoRecEntryCount	=	-14959
.Pp
	// No record entry count returned
.Pp	
	eDataReceiveErr_NoRecMatchCount	=	-14960
.Pp
	// No record match count returned
.Pp	
	eDataReceiveErr_NoDataBuff		=	-14961
.Pp
	// No tDataBuffer returned
.Pp	
	eDataReceiveErr_NoContinueData	=	-14962
.Pp
	// No continue data returned
.Pp	
	eDataReceiveErr_NoNodeChangeToken	=	-14963
.Pp
	// No node Change Token returned
.Pp
	eNoLongerSupported				=	-14986
.Pp
	eUndefinedError				=	-14987
.Pp
	eNotYetImplemented				=	-14988
.Pp
.Pp
.Sh OPEN SOURCE
The source code for
.Nm
is available as part of Apple's Darwin open source initiative.
.Nm
is part of the DirectoryService project.
More information on Darwin may be found on the Web at
.Pp
.Dl http://developer.apple.com/darwin/projects/opendirectory/
.Pp
Directory Services Access API and Plug-in API is documented at
.Pp
.Dl http://developer.apple.com/techpubs/macosx/Networking/
.Pp
The headers for the DirectoryService APIs can also be found in the following location:
.Pp
.Dl /System/Library/Frameworks/DirectoryService.framework/Headers/
.Sh FILES
/usr/sbin/DirectoryService
.Pp
/Library/Logs/DirectoryService/DirectoryService.debug.log
.Pp
/Library/Logs/DirectoryService/DirectoryService.error.log
.Pp
/Library/Logs/DirectoryService/DirectoryService.server.log
.Sh SEE ALSO 
.\" List links in ascending order by section, alphabetically within a section.
.\" Please do not reference files that do not exist without filing a bug report
.Xr DirectoryServiceAttributes 7
.Xr dscl 1
.Xr lookupd 8
.\" .Sh BUGS 
.\" .Sh HISTORY