Rendering a Mac OS X installation unsuable
I was writing a post about my good experience with Mac OS X when this happened. And I don't like how easily a user can hurt the system like this. I should have guessed by the way applications in /Applications are accessible.
The generation of the problem
I could not open System Preferences. All I could see was this System Preferences icon with a big question mark. No errors displayed whatsoever. Hmm... After trying some solutions I found on-line about similar problems without success, a user and moderator at Mac OS X tips forum made a bell ring in my head when he reminded me to see if System Preferences.app was present in /Applications. It wasn't...
Looking back at what I recall, this is what I think might have caused the absence of the file.
Since I am a bit clumsy using the trackpad, I must have dragged System Preferences.app from /Applications to another folder. When you do this, you're not actually moving a shortcut or a pretty icon. You're in fact moving the entire application. If you are a user with the capability to "sudo" (a "sudoer"), the system will not ask you for confirmation and will obey your command even if you're not root. Listing /Applications I realized that users of the group admin have full access to this folder. Which means they can change it as they please with not permissions verification or confirmation. User of the admin group are sudoers.
I remember seeing the System Preferences.app icon in that other folder but since I was making experiments moving data in and out of an NTFS partition and seeing some strange things happening (like duplicate folder names in finder), I just glanced at it and deleted it. "What the hell is this doing here?" Right? Wrong. I should have guessed and checked /Applications folder. It was not the first time I moved something inadvertently. From this moment on, System Prefences.app was gone entirely from my system.
Trying to get System Preferences.app back
To restore the app back, I tried an installation type that, supposedly, backups up your /Users directory and /System directory before doing a fresh install.
The installation program asked for more free space available than I had so I went back to my system and freed some space to meet the requirements. The installation program confirmed that I had the necessary free space and proceeded with the installation. After sometime, the system rebooted as expected but I was presented with an enigmatic error:
"You cannot install Mac OS X on this volume. The target does not have enough free space for the install."
Everytime I started the MacBook I was presented with this error.
Linux to the rescue
As I was already for sometime planning to repartition my harddrive to give Mac OS X a little more space, I decided to do this. The only problem was how I would access my data that the installed program supossedly backed up. Easy. I booted with a Kubuntu Live CD (the nearest Linux live CD available), mounted the Mac OS X partition and copied my information to another Linux box.
My conclusion and note to my self
Because of the way permissions are set on /Applications, a user of the group admin can delete or change any application installed without confirmation. Unlike in most Linux distributions, if I am a user with administrative privileges I have to be extra careful when using my system with default configuration. An Ubuntu user, for instance, when installing, changing or deleting an application will have to provide it's credentials first. This avoids screwing thinks up inadvertently or have someone change our system when we're away from keyboard. This, unfortunatly I think, is not the case with Mac OS X.
Mac OS X installation program can render your system useless due to an incorrect requirements verification. So before you install, make sure you have a lot more than the amount the program displays as required. And, of course, back up your files. Having a Linux Live CD at hand can also be helpful :)
The generation of the problem
I could not open System Preferences. All I could see was this System Preferences icon with a big question mark. No errors displayed whatsoever. Hmm... After trying some solutions I found on-line about similar problems without success, a user and moderator at Mac OS X tips forum made a bell ring in my head when he reminded me to see if System Preferences.app was present in /Applications. It wasn't...
Looking back at what I recall, this is what I think might have caused the absence of the file.
Since I am a bit clumsy using the trackpad, I must have dragged System Preferences.app from /Applications to another folder. When you do this, you're not actually moving a shortcut or a pretty icon. You're in fact moving the entire application. If you are a user with the capability to "sudo" (a "sudoer"), the system will not ask you for confirmation and will obey your command even if you're not root. Listing /Applications I realized that users of the group admin have full access to this folder. Which means they can change it as they please with not permissions verification or confirmation. User of the admin group are sudoers.
I remember seeing the System Preferences.app icon in that other folder but since I was making experiments moving data in and out of an NTFS partition and seeing some strange things happening (like duplicate folder names in finder), I just glanced at it and deleted it. "What the hell is this doing here?" Right? Wrong. I should have guessed and checked /Applications folder. It was not the first time I moved something inadvertently. From this moment on, System Prefences.app was gone entirely from my system.
Trying to get System Preferences.app back
To restore the app back, I tried an installation type that, supposedly, backups up your /Users directory and /System directory before doing a fresh install.
The installation program asked for more free space available than I had so I went back to my system and freed some space to meet the requirements. The installation program confirmed that I had the necessary free space and proceeded with the installation. After sometime, the system rebooted as expected but I was presented with an enigmatic error:
"You cannot install Mac OS X on this volume. The target does not have enough free space for the install."
Everytime I started the MacBook I was presented with this error.
Linux to the rescue
As I was already for sometime planning to repartition my harddrive to give Mac OS X a little more space, I decided to do this. The only problem was how I would access my data that the installed program supossedly backed up. Easy. I booted with a Kubuntu Live CD (the nearest Linux live CD available), mounted the Mac OS X partition and copied my information to another Linux box.
My conclusion and note to my self
Because of the way permissions are set on /Applications, a user of the group admin can delete or change any application installed without confirmation. Unlike in most Linux distributions, if I am a user with administrative privileges I have to be extra careful when using my system with default configuration. An Ubuntu user, for instance, when installing, changing or deleting an application will have to provide it's credentials first. This avoids screwing thinks up inadvertently or have someone change our system when we're away from keyboard. This, unfortunatly I think, is not the case with Mac OS X.
Mac OS X installation program can render your system useless due to an incorrect requirements verification. So before you install, make sure you have a lot more than the amount the program displays as required. And, of course, back up your files. Having a Linux Live CD at hand can also be helpful :)
I have read on other sites that this is a common problem with new Mac OS X users and specially with users already familiar with Linux and UNIX. There's a lot of similar things between these operating systems but Mac OS X handles user roles a bit differently from most Linux distributions. If you are in the admin user group, a user with administrative permissions, you definitely not root and you're not only a suddoer. You are in fact an "administrator" that can do a lot more than sudo.
ReplyDeleteTo avoid this problem, I created another user with administrative rights and removed my administrative permissions. Now, when I need to install an application, I have to specify this other user credentials. I cannot sudo anymore (unless I add myself to the sudoers file I guess) and I cannot move applications out of /Applications by mistake which is a good thing :)