GUI-apps uitvoeren als root in Mac OS X
Degenen die bekend zijn met de opdrachtregel weten dat het uitvoeren van dingen met supergebruikersprivileges meestal gewoon een kwestie is van het gebruik van de sudo-opdracht. Dat geldt nog steeds voor het starten van GUI-apps in OS X met root-privileges, maar het is niet alleen een kwestie van sudo toevoegen aan de anderszins nuttige open-opdracht, omdat 'open' apps start als de oorspronkelijke gebruiker, met of zonder sudo. De oplossing is in plaats daarvan sudo te gebruiken dat rechtstreeks verwijst naar het uitvoerbare bestand in een bepaald toepassingspakketbestand.
OS X GUI-apps starten als rootgebruiker
De opdrachtsyntaxis is als volgt:
sudo /Path/To/Application/ApplicationName.app/Path/To/Executable
In de meeste gevallen zijn dat applicaties die zijn opgeslagen in de map /Applications/ en het uitvoerbare bestand wordt bijna altijd opgeslagen in Package/Contents/MacOS/ ongeacht de naam van de applicatie:
sudo /Applications/ApplicationName.app/Contents/MacOS/ApplicationName
Deze opdracht voert bijvoorbeeld de vertrouwde Teksteditor-app uit als root:
sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit
Om TextEdit als een achtergrond-app te starten, wat betekent dat het niet sluit als je het terminalvenster sluit, pas je de vlag -b toe op sudo: sudo -b /Applications/TextEdit .app/Contents/MacOS/TextEdit
U kunt controleren of de toepassing als root wordt uitgevoerd door het ps-commando met grep te gebruiken, opnieuw met TextEdit als voorbeeld:
ps au|grep TextEdit
U kunt ook naar de OS X-app Activity Monitor voor procesbeheer kijken en de toepassing daar als 'root'-gebruiker vinden, zoals wordt aangetoond in de schermafbeelding bovenaan en de korte video hieronder:
Als u van plan bent een bepaalde app vaak als root uit te voeren, kunt u overwegen een alias in .bash_profile te plaatsen om de opdrachtreeks te verkorten.
Ondanks dat ze als root worden uitgevoerd, kunnen niet alle systeembestanden worden gewijzigd en kunnen sommige worden gemarkeerd als "Vergrendeld" wanneer ze worden geopend in sommige apps zoals Teksteditor. Dat probleem kan vaak worden opgelost door de rootgebruiker in te schakelen als je dat nog niet hebt gedaan, maar niet alle apps hebben die beperking.Desalniettemin kun je voor bepaalde taken, zoals het bewerken van het hosts-bestand, nog steeds beter vasthouden aan de opdrachtregel en een op tekst gebaseerde editor, of een app als BBEdit of TextWrangler gebruiken.