Alors qu'il est possible de lancer une application graphique en tant qu'utilisateur root, ce n'est pas recommandé. Cela peut fonctionner, la plupart du temps, mais évitez de compter sur ce comportement.
Évitez root
Exécuter une application en tant que root n'est pas recommandé car cela augmente considérablement le risque de causer des problèmes avec votre Mac. L'utilisation de root devrait être limitée au plus petit morceau de code possible avec des contrôles stricts en place.
Les applications tendent de plus en plus vers une conception fragmentée pour éviter d'exposer trop de puissance à un code qui n'en a pas besoin.
- Une erreur dans le code s'exécutant avec des autorisations root est un risque pour la sécurité.
- Une erreur dans le code sans autorisations root est beaucoup moins susceptible de causer de graves problèmes.
Il y a des cas particuliers mais ceux-ci deviennent de plus en plus rares. L'introduction du confinement et de XPC fait partie des efforts d'Apple pour réduire le besoin de fournir une autorité excessive aux processus s'exécutant sur OS X.
Outils en Ligne de Commande
Si vous avez besoin de travailler avec des fichiers en tant qu'utilisateur root, utilisez des outils en ligne de commande tels que vim
, emacs
ou nano
. Ces outils ne dépendent pas de WindowServer et peuvent être lancés avec bonheur en tant que root dans une autre session utilisateur :
sudo nano
Outils Graphiques
Si vous préférez les éditeurs graphiques, utilisez un éditeur qui fonctionne avec la conception de Mac OS X. BBEdit est un excellent éditeur qui gérera correctement l'édition des fichiers appartenant à root.
Lorsque vous éditez un fichier appartenant à root avec BBEdit, un second processus est utilisé pour combler l'écart de permissions entre vous et le propriétaire du fichier. Ce processus passe par des chemins approuvés par Apple et assure ainsi une expérience prévisible - espérons-le sur plusieurs versions majeures de Mac OS X.
Pourquoi ? Limites de WindowServer et Portée de Conception
Il existe des problèmes techniques subtils liés au lancement d'une application graphique dans une autre session utilisateur.
Les problèmes techniques sous-jacents découlent d'un utilisateur souhaitant lancer un processus graphique dans la session d'un autre utilisateur. Le WindowServer de Mac OS X n'a jamais été conçu dans ce but. Les sessions utilisateur sont extrêmement difficiles à contourner même en tant qu'utilisateur root - et ce pour des raisons de sécurité souhaitables.
Apple a considérablement amélioré la conception de WindowServer dans les dernières versions majeures de Mac OS X. Il est désormais possible d'avoir plusieurs utilisateurs connectés à différentes sessions graphiques sur un Mac via le partage d'écran. Cette amélioration en apparence simple a nécessité un énorme effort en coulisses de la part des ingénieurs d'Apple.
Cependant, il est peu probable qu'Apple fournisse un moyen facile de lancer des applications entre différents utilisateurs à partir d'une seule session utilisateur graphique. Comment cela bénéficierait-il à leurs clients ?
Si vous souhaitez approfondir ce sujet, recherchez des questions impliquant launchctl
et l'exécution d'applications dans d'autres sessions utilisateur actives.
1 votes
Cette question semble actuellement assez large, pourriez-vous être un peu plus spécifique sur le problème concret que vous essayez de résoudre ici ?
0 votes
@patrix, je demande juste car cette pensée m'est venue à l'esprit. Il y a un an, j'ai dû éditer quelques fichiers hosts, donc j'ai utilisé su pour me connecter en tant que root et j'ai exécuté TextEdit à partir de là. Je me demandais s'il y avait une meilleure façon.