Regress report - posted on WSO Oct 3, 2005 Evan Miller So in order to import users into Mac OS X Server, you have to convert your nice little one-line-per-user /etc/passwd file into a big fat XML file with lots of unnecessary and empty tags. Mike started to write a conversion script in Java--Java!--Mike!, I said--Java!?!? You're a sysadmin for the most reliable--well not exactly reliable, that is, worthy of reliance, but certainly relied-upon--student computer organization at Williams College, and you process your text inside A VIRTUAL MACHINE?? He said, what's wrong with that? I asked him what was wrong with chopping wood with a pair of Fiskers, or wearing a clown suit to a fox hunt. He still looked confused. PERL!, I said. Mike wasn't convinced. Perl is the appropriate tool for this job, I explained. In the time it takes you to declare your public static classes and import your String Tokenizers and Buffered Readers and Printable interfaces, me and my perl will have that file diced, spliced, and topped with a little ASCII art cherry. That's right, I said. A cherry, and its stem tied in a knot. Mike looked at me unblinkingly. Wanna race? I said. He said he wouldn't mind learning a little Perl. So we made a nice little script to merge the account information with the email forwarding information and presto! we had the XML import file we wanted. Or at least the one we thought we wanted. We fed it to the "Workgroup Manager", an elegant, graphical user management tool that I absolutely hate. It took about 10 minutes for the importation progress bar to reach 100 percent, and then it stayed there for about 40 minutes. Ben advised us to hit "Stop". So Mike did, and discovered about 80 users with XML-esque names that we didn't anticipate; apparently our file was mal-formed, or I prefer to think the weakling GUI program was ill-conceived, in any event the two didn't agree, and we had 80 bogus accounts to get rid of. You can only delete one account at a time with Workgroup Manager, so Mike started playing Whack-A-Mole with it, and I tried writing a script to delete the offending accounts all at once from the command line. One of us--we're still not sure who, pending a mud-wrestle (noon Saturday)--one of us deleted the adminstrator account. For a system administrator, deleting the root account is the "oh fuck" moment of all "oh fuck" moments. Well, apart from, say, deleting the listservers and not having a backup, or having Brazilian bandits take control of your root account (cf. a history of wso). "Oh fuck," I said. Mike tried recreating the account. "Unrecognized user", the program said. I tried to change users to another account. "su: who are you?" So I typed: "whoami". "0", it said. Not even "nobody". Nothing, nada, the absence of thing, a small black zero. This must be what it's like to come home from war only to find out the key doesn't work, your mother's been evicted, and the neighborhood dog is dead. Where do you start if nobody knows you? "Single user mode," Mike said. Single user mode is the UNIX equivalent of Windows' Safe Mode. Of course, "perilous Mode" would be a better name for it. In single-user mode, there are no graphics, no colors, and no other users. There is you, and there is a white pound sign on a black background. The pound sign means to a UNIX disciple what the sword means to the Mohammedan or the cross to a follower of Christ. It is a symbol of the ultimate power. The power to restore. The power to destroy. And the blinking cursor next to it is telling you, Captain Planet-like, that the power is in fact yours. We told the computer to fix the damn users' database. I thought it was a reasonable request, and humbly submitted. Ursula pretended to comply, but when we rebooted into multi-user mode, it decided that actually, the users' database wasn't restored, and no one could log in. I started cursing. Ursula, for her part, started beeping. Loudly. One second beep, followed by a second of silence, followed by a second of beep. It was, by far, the world's most obnoxious metronome. Ben told me to google the phrase "Xserve deafening beep". People on the Internet seemed to agree that a similar noise could be fixed by downloading a program called CHUD and telling it not to let the processor nap. Ok, whatever, we tried it. BEEEEP, two, three, four, BEEEP, half-rest, BEEEP. No dice. Ben starts threatening Ursula in terms that, if ever directed at myself, would be sure to induce tears. We checked system control panels, internal temperature monitors, every doo-dad and diode on the box and in the system, but like a newborn, it issued absolutely no indication as to what the hell was so wrong that the neighbors needed to hear about it. Under this intense pressure, Ben and Mike managed to fix the users' database; I still don't know how. Meanwhile I did some more Googling on "Xserve won't shut the hell up." Someone on the internet says if you use both processors a lot, like, a lot a lot, it'll shut the hell up. So I run a program to decrypt password hashes, and wait while it reports its results to the screen. Apparently three people on the system have a variant of their last name as a password. The beep goes on. Someone's password is, in fact, "williams". (*Was* williams, I reset it.) Still beeping a river. Mike and Ben interrupt the password cracking, and the beeping, to reboot the system. This time, it doesn't come up. At all. There's a question mark where there's usually the Apple logo. It is 2 AM, I have been in the cage since 9 in the morning trying desperately, patiently, to move our services from Spiker to Ursula, and I burst out laughing. Well boys, I say, kill the fatted cow, we're coming back home to Aunt Spiker. Spiker is 5 years old. That's about 78 in computer-years. I have coddled and cursed her, I have babysat her, I have dropped her from a height of 18 inches (accident), I have made arrangements for her care when I'm out of town, I have tried to leave but I keep coming back. Spiker is a honking-big Frankenstein of a machine, with parts spewing out her front and dim LED's flickering in the back. She can't handle too much of a load at a time, and she needs help just rebooting ("no, Aunt Spiker, that filesystem is clean. I told you, that filesystem is clean, you don't need to wash it again. Aunt Spiker, put that filesystem down, it's clean, it doesn't need washing. Give it here, c'mon...Aunt Spiker, let go!! GIVE THE DAMN THING UP!! I KNOW YOU DON'T *REMEMBER* CLEANING IT, BUT YOU WASHED THE THING EIGHT TIMES IN THE LAST HALF-HOUR, FOR CHRIST'S SAKE JUST LET GO AND LET SOMEONE USE IT!!!!"). Half her files are on a decent RAID, and the other half are sitting on an old 33-MHz IDE hard drive--I call it her artificial lung--that I would put only into the computer of someone I didn't like, and then only in an emergency. The iron lung is a relic of last semester during Hack-Fest 2K5, when we were looking for more with which bandwidth to transfer files, and someone suggested using a hard drive. I don't know which dumpster they pulled this one out of. Anyhow, there it is, sticking three inches out of Ursula' face like the handle of that orthodontic tray with cold pink mush that they stick in your mouth for five minutes the first time you visit the orthodontist to get a mold of your teeth and decide whether your mouth needs, in fact, to be rearranged in order to be beautful. So, executive summary, situtation normal, figged beyond belief. We pointed mail and everything back at Spiker. Just pretend we weren't going to migrate until reading period. Pray Spiker makes it another six days, and that Ursula makes it out alive, or at least will cease her glass-breaking metronomic activity. Me, I'm taking two aspirin and calling Apple in the morning. Or late afternoon, depending on when what time I wake up.