Mac OS X - Impossible de démarrer Terminal.app - le shell a une valeur illégale

16

Je ne peux pas exécuter Terminal.app après avoir restauré mon système à partir de Time Machine.

Mac OS X version 10.6.2

Il affiche l'erreur suivante. "Vous n'êtes pas autorisé à exécuter cette application" "L'administrateur a défini votre shell sur une valeur illégale"

Après cela, j'ai supprimé le fichier ~ / Library / Preferences / com.apple.Terminal.plist

Mais le même message s'affiche.

J'ai réparé tous les droits du système avec DiskUtility mais cela n'a pas aidé.

chemm
la source

Réponses:

10

Le redémarrage est la réponse dans OS X Lion. Si vous perdez la possibilité d'écrire sur des lecteurs USB ou réseau, la solution est la même.

J'espère que des mises à jour rapides permettront de se débarrasser de certains de ces problèmes ennuyeux.

Rune Smistad
la source
10

Cette valeur est définie sur /bin/bash . Rien à changer ici. J'ai contrôlé ces préférences. J'obtiens cette erreur pour chaque shell.

Enfin, j'ai trouvé la solution. Dans le Finder, je vais ouvrir le dossier /etc. Là, j'ai trouvé le fichier /private/etc/shells, qui était vide. J'ai remplacé le fichier /private/etc/shellspar le fichier de sauvegarde /private/etc/shells~orig.

Maintenant, / private / etc / shells contient les éléments suivants:

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

(Il y a plus d'étapes nécessaires dans le Finder, supprimez le fichier shell vide, modifiez les autorisations dans la boîte de dialogue d'informations.)

Maintenant, je peux redémarrer le Terminal.app avec le /bin/bash.

chemm
la source
J'ai trouvé que mon compte n'était même pas en mesure de voir les dossiers / etc / bin pour une raison quelconque, bien que je puisse les voir à partir d'un compte d'administrateur local également sur la machine (mon compte principal est un compte de domaine d'entreprise). Pensé à utiliser CHMOD depuis le compte administrateur pour changer l'accès aux répertoires / etc / bin.
ScottCher
Pensez à accepter votre (ou une autre) réponse à cette question.
Daniel Beck
5

J'ai eu le même problème après une restauration Time Machine, dans ce cas, en utilisant la sauvegarde d'un MacBook Pro pour restaurer sur un MacBook.

J'ai pu résoudre le problème en utilisant simplement Finder (entrez votre mot de passe à chaque fois que vous le demandez):

  • Utilisez Aller> Aller au dossier pour aller dans "/ privé"
  • Sélectionnez "etc"
  • Commande-I pour faire apparaître le pop-up Information (ne le fermez pas avant la fin de cette procédure)
  • Cliquez sur le symbole de verrouillage dans le coin inférieur droit pour déverrouiller les autorisations
  • Notez le paramètre d'autorisation pour "Tout le monde"
  • Cliquez sur le paramètre d'autorisation pour "Tout le monde" et sélectionnez "Lecture et écriture"
  • Utilisez Aller> Aller au dossier pour aller dans "/ private / etc"
  • J'ai trouvé que "shells" était vide, mais il y avait un "shells ~ orig" avec une bonne liste de shells dedans
  • Supprimer les "obus"
  • Sélectionnez "shells ~ orig"
  • Command-C, Command-V pour le copier-coller; cela crée des "shells ~ copie d'origine"
  • Sélectionnez "shells ~ copie d'origine
  • Cliquez à nouveau pour passer en mode renommer et changer le nom de "shells ~ orig copy" en "shells"
  • Revenez à la fenêtre contextuelle Informations et modifiez le paramètre d'autorisation pour «Tout le monde» à sa valeur d'origine
  • Fermez la fenêtre d'information

Maintenant que j'avais un fichier "shells" avec une liste valide de shells, j'ai pu rouvrir Terminal.

Lindsay
la source
4

Cliquez avec le bouton droit sur le nom de votre compte dans le volet Comptes des Préférences Système et choisissez Options avancées. Modifiez la valeur de "Login shell" - J'utilise / bin / bash, mais vous êtes libre d'utiliser n'importe quel shell installé.

Tim
la source
4

J'ai eu le même problème; un redémarrage a fait l'affaire pour moi. Pas habitué à devoir le faire sur un Mac :-P

atraudes
la source
Même chose avec moi (sur Lion). D'autres applications fonctionnaient (comme BBEdit), donc j'ai pensé que j'essaierais d'abord un redémarrage et cela a fonctionné.
nevan king
3

J'ai aussi eu exactement le même problème. Solution simple:

Exécutez simplement Repair Disk Permission avec Disk Utility :-).

hobbes3
la source
3

La modification du mot de passe de mon compte utilisateur via les Préférences Système a corrigé ce problème pour moi (je l'ai changé à la même valeur, ce qui a probablement forcé le système d'exploitation à écrire des informations de compte utilisateur dans des fichiers). J'utilise Mac OS X 10.7.3 et aucun fichier dans / etc ne semble avoir été modifié.

Adam Nohejl
la source
2

La combinaison des réponses de Tim et de chemm a été utile dans mon cas.

J'ai utilisé l'approche de Tim pour faire apparaître un terminal utilisant un autre shell. J'ai ensuite édité / etc / shells pour inclure le shell préféré, puis j'ai utilisé à nouveau l'approche de Tim pour restaurer le chemin du shell d'origine dans les "Options avancées".

Franc
la source
2

J'ai eu le même problème. Time Machine pour une raison quelconque s'est transformé /private/etc/shellsen un fichier de longueur nulle lors de ma restauration. La réponse de chemm est assez bonne, mais il manque quelques étapes pour les noobies Mac comme moi.

  • Pour y accéder, /private/etcvous devez utiliser l' Go -> Go to Folderoption de menu Finder et taper/private/etc
  • Localisez ensuite le fichier shells.
  • Cela ne me permettrait pas de modifier le fichier du tout, alors je l'ai supprimé.
  • Ensuite, j'ai utilisé Time Machine pour restaurer ce fichier.
  • Si vous entrez dans la machine à voyager dans le temps dans le Finder, cela vous lancera dans ce /private/etcdossier.
  • Lorsque je l'ai restauré, je ne pouvais pas comprendre comment diriger Time Machine vers ce dossier (je n'ai pas vu d'option aller dans le dossier), j'ai donc restauré des "shells" sur mon bureau, puis utilisé le Finder pour copier / coller le fichier dans /private/etc

Vous devrez fournir votre mot de passe plusieurs fois pour atteindre ce qui précède, et je suppose que vous devrez être sur un compte administrateur.

user33466
la source
0

Pour moi, aucune des réponses standard n'était le problème - tout était comme ça devait être.

Quitter ma session Aquamacs (emacs) a résolu le problème! Lorsque j'ai redémarré Aquamacs, Terminal a continué de fonctionner correctement.

Je n'avais PAS utilisé la commande shell emacs, mais ces applications interagissaient toujours de manière malheureuse.

Howard Nebeck
la source