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 alleen een kwestie is van het gebruik van de opdracht sudo. Dat klopt nog steeds met het starten van GUI-apps in het OS X met root-privileges, maar het is niet alleen een kwestie van sudo voor te leggen aan de anderszins bruikbare open-opdracht, want 'open' start apps als de oorspronkelijke gebruiker, met of zonder sudo. De oplossing is in plaats daarvan sudo rechtstreeks naar het uitvoerbare bestand in een bepaald toepassingspakketbestand te richten.

OS X GUI Apps starten als rootgebruiker

De syntaxis van de opdracht is als volgt:

sudo /Path/To/Application/ApplicationName.app/Path/To/Executable

In de meeste gevallen zullen dat toepassingen zijn die zijn opgeslagen in de map / Applications / en het uitvoerbare bestand wordt bijna altijd opgeslagen in Package / Contents / MacOS / ongeacht de naam van de toepassing:

sudo /Applications/ApplicationName.app/Contents/MacOS/ApplicationName

Met deze opdracht wordt bijvoorbeeld de bekende TextEdit-app als root uitgevoerd:

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit

Als u Teksteditor wilt starten als een achtergrondapp, betekent dit dat het niet wordt gesloten als u het terminalvenster sluit, past u de vlag -b toe op sudo:

sudo -b /Applications/TextEdit.app/Contents/MacOS/TextEdit

U kunt bevestigen dat de toepassing wordt uitgevoerd als root door de ps-opdracht met grep te gebruiken, opnieuw met behulp van TextEdit als een voorbeeld:

ps au|grep TextEdit

Als alternatief kunt u de OS X-app voor procesbeheersoftware voor app-beheer bekijken en de toepassing die daar als 'root'-gebruiker wordt uitgevoerd vinden, zoals te zien is in de schermafbeelding bovenaan en de korte video hieronder:

Als u een bepaalde app vaak als root wilt uitvoeren, kunt u overwegen om een ​​alias in .bash_profile te plaatsen om de opdrachtreeks in te korten.

Ondanks dat ze als root worden uitgevoerd, zijn mogelijk niet alle systeembestanden aanpasbaar en kunnen sommige worden gemarkeerd als "Vergrendeld" wanneer ze worden geopend in sommige apps zoals Teksteditor. Dat probleem kan vaak worden opgelost door de root-gebruiker in te schakelen als je dat nog niet hebt gedaan, maar niet alle apps hebben die beperking. Niettemin, voor bepaalde taken, zoals het bewerken van het hosts-bestand, kun je nog steeds beter vasthouden aan de commandoregel en een op tekst gebaseerde editor, of een app zoals BBEdit of TextWrangler gebruiken.