AFP548

Replacing niload with ds* tools??

Has anyone looked at how to replace niload with the ds* tools for creating user accounts from command line or scripts? My need for inserting mcx properties makes things complicated. This is on 10.4 (not Server) by the way.

nidb_power()
{
niload -r /users/$uname . <<EOF
{
  "name" = ( "$uname" );
  "_writers_picture" = ( "$uname" );
  "shell" = ( "$shell" );
  "_writers_hint" = ( "$uname" );
  "sharedDir" = ( "" );
  "home" = ( "$home" );
  "gid" = ( "$gid" );
  "authentication_authority" = ( ";ShadowHash;" );
  "_writers_realname" = ( "$uname" );
  "picture" = ( "/Library/User Pictures/Nature/Zen.tif" );
  "passwd" = ( "********" );
  "realname" = ( "$irl" );
  "hint" = ( "" );
  "_shadow_passwd" = ( "" );
  "uid" = ( "$uid" );
  "generateduid" = ( "$UUID" );
  "passwordpolicyoptions" = ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
	<key>canModifyPasswordforSelf</key>
	<integer>1</integer>
	<key>expirationDateGMT</key>
	<date>1969-12-31T23:59:59Z</date>
	<key>hardExpireDateGMT</key>
	<date>1969-12-31T23:59:59Z</date>
	<key>isSessionKeyAgent</key>
	<integer>0</integer>
	<key>maxChars</key>
	<integer>0</integer>
	<key>maxFailedLoginAttempts</key>
	<integer>0</integer>
	<key>maxMinutesOfNonUse</key>
	<integer>0</integer>
	<key>maxMinutesUntilChangePassword</key>
	<integer>0</integer>
	<key>maxMinutesUntilDisabled</key>
	<integer>0</integer>
	<key>minChars</key>
	<integer>8</integer>
	<key>passwordCannotBeName</key>
	<integer>1</integer>
	<key>requiresAlpha</key>
	<integer>1</integer>
	<key>requiresNumeric</key>
	<integer>1</integer>
	<key>usingExpirationDate</key>
	<integer>0</integer>
	<key>usingHardExpirationDate</key>
	<integer>0</integer>
	<key>usingHistory</key>
	<integer>0</integer>
</dict>
</plist>
" );
  "mcx_settings" = ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
	<key>mcx_application_data</key>
	<dict>
		<key>com.apple.Classic</key>
		<dict>
			<key>Forced</key>
			<array>
				<dict>
					<key>mcx_data_timestamp</key>
					<date>2005-03-18T18:30:35Z</date>
					<key>mcx_preference_settings</key>
					<dict>
						<key>ClassicRedirectUserFolders</key>
						<true/>
					</dict>
				</dict>
			</array>
		</dict>
		<key>com.apple.systempreferences</key>
		<dict>
			<key>Forced</key>
			<array>
				<dict>
					<key>mcx_data_timestamp</key>
					<date>2005-03-18T18:30:35Z</date>
					<key>mcx_preference_settings</key>
					<dict>
						<key>EnabledPreferencePanes</key>
						<array>
							<string>com.apple.preference.desktoppictures</string>
							<string>com.apple.preference.dock</string>
							<string>com.apple.preference.general</string>
							<string>com.apple.Localization</string>
							<string>com.apple.preference.screensaver</string>
							<string>com.apple.preference.universalaccess</string>
							<string>com.apple.preference.keyboard</string>
							<string>com.apple.preference.sound</string>
							<string>com.apple.preference.classic</string>
							<string>com.apple.preference.quicktime</string>
							<string>com.apple.preference.displays</string>
							<string>com.apple.preference.energysaver</string>
							<string>com.apple.preference.digihub.discs</string>
							<string>com.apple.preferences.Bluetooth</string>
							<string>com.apple.preference.datetime</string>
							<string>com.apple.preference.internet</string>
							<string>com.apple.preferences.sharing</string>
							<string>com.apple.preferences.users</string>
							<string>com.apple.preference.expose</string>
							<string>com.apple.preference.network</string>
							<string>com.apple.preference.security</string>
							<string>com.apple.preference.desktopscreeneffect</string>
							<string>com.apple.preference.printfax</string>
						</array>
					</dict>
				</dict>
			</array>
		</dict>
	</dict>
</dict>
</plist>
" );
}
EOF
}

Exit mobile version