Sunday, January 11, 2009

Missing Persons in dslocal

I ran into a Leopard system the other day that was behaving erratically. I looked at system.log, and encountered some errors I'd never run into before.

Jan  6 10:04:42 Edit1 /System/Library/CoreServices/coreservicesd[60]: _scserver_ServerCheckin: client uid validation failure; getpwuid(92) == NULL
Jan  6 10:05:13 Edit1 com.apple.launchd[1] (com.apple.launchd.peruser.92[183]): getpwuid("92") failed
Jan  6 10:05:13 Edit1 com.apple.launchd[1] (com.apple.launchd.peruser.92[183]): PID 182 "SFLSharedPrefsTo" has no account to back it! Real/effective/saved UIDs: 92/92/92
Jan  6 10:05:13 Edit1 com.apple.launchd[1] (com.apple.launchd.peruser.92[183]): PID 166 "SecurityAgent" has no account to back it! Real/effective/saved UIDs: 92/92/92

Lots of those, and for various UIDs and myriad processes. I thought I'd open up dscl and see what was up with the system users.

Edit1:~ user$ dscl

Entering interactive mode... (type "help" for commands)

 > cd /Local/Default/users

/Local/Default/dsRecTypeNative:users > ls

daemon

user



root

Apparently, this system had all of 3 local users. This is a bit strange, as any normal Leopard system should have at least 40.

Gene:~ gene$ dscl . -list users | wc



      41      41     378
What had happened, for reasons that I haven't been able to determine, was the .plists for most of the system users and groups (located in /var/db/dslocal/nodes/Default/) were missing. I put the machine in target mode, grabbed those from a functional Leopard system, and everything was fine.

No comments:

Post a Comment