Salut
JDELL.
Bon désolé mais je n'y arrive pas. Le souci c'est que je ne comprends pas ce que je fais.
Ce me rend fou, je vais aller me coucher...
Si la nuit ne te porte pas conseil, peut-être le matin t'apportera-t-il le conseilleur?
Je peux essayer d'éclairer tant soit peu ta "lanterne", sachant que la flamme d'une simple "bougie", si elle révèle plusieurs objets dans son cercle de lumière, renforce d'autant plus les ombres du périmètre. Illustration de l'adage qui veut que la conscience de l'ignorance augmente en proportion géométrique du volume de la science, avec la conséquence : «Quiconque augmente sa Science, augmente sa Douleur» et le corollaire : «Heureux les Simples en Esprit»...
Dans les coulisses invisibles d'
OSX, il y a des centaines de programmes UNIX spécialisés chacun dans une espèce de tâche et porteurs de noms dérivés de l'Anglais qui symbolisent la fonction qu'ils peuvent remplir (ainsi
diskutil évoque une "
disk_utility" en abrégé - une 'utilité de disque'). Ces programmes sont de petites "machines" logiques capables de produire des "effets informatiques" divers. À condition qu'ils soient mis en œuvre "comme il faut", ce qui se résume à leur communiquer des "instructions écrites" correctes qui leur dictent la marche à suivre. Ces instructions écrites sont des "commandes".
À présent, figure-toi que le «
Terminal» est comme un "traitement de texte" qui affiche une page blanche au départ, dans laquelle précisément il est possible de rédiger de telles "commandes" avant de les "poster" au programme voulu (en pressant la touche ↩︎ = 'Entrée' du clavier). Le "facteur" qui va délivrer les commandes écrites dans la page du «
Terminal» est un opérateur en coulisse : le
Shell. Donc tout ce qu'il y a à faire dans le «
Terminal», c'est à rédiger correctement les commandes ad-hoc et le "facteur"
Cheval Shell s'en ira les poster à destination du programme désigné

.
Une commande ne s'énonce qu'en respectant des règles de
syntaxe rigoureuses : globalement, elle commence toujours par le
nom du programme concerné ; comporte en son milieu l'
instruction qu'il s'agit de lui passer ; et se termine par la désignation de l'
objet (ou de la cible) sur lequel le programme doit agir. Tu as donc une structure de la forme :
Sujet - Verbe - Complément d'objet analogue à celle requise par la grammaire des langues Indo-Européennes. Mais la mise en œuvre de détail requiert de "parler" au programme concerné le
langage spécifique (en mots et en tournures syntaxiques) qu'il peut comprendre : il existe pour chaque programme, un manuel
man qui détaille le vocabulaire et la grammaire permettant de faire des phrases comprises par icelui.
♤
Bon trêve de généralités aussi fumeuses que ma mince bougie

. Prenons en exemple le programme qui t'intéresse -->
----echo, comme son nom l'indique, est un programme capable de produire l'
écho d'un argument écrit sur la page du «
Terminal» dans un autre emplacement (par exemple un fichier). Pour cela, il suffit d'invoquer le programme
echo en premier, de lui passer en milieu de commande l'argument écrit qu'il doit reproduire ailleurs - par exemple
coucou et, par l'intermédiaire d'un symbole directionnel comme
>>, de lui désigner au final l'emplacement où il doit produire son 'écho' - par exemple l'adresse d'un fichier dans l'arborescence de l'OS. Exemple :
Bloc de code:
echo coucou >> ~/Desktop/titi
--> le programme
echo est enjoint de se référer à l'argument
coucou pour aller en générer un 'écho' là où le symbole directionnel
>> le lui indique : l'emplacement du Bureau de l'utilisateur
~/Desktop où il lui est demandé de créer (si l'objet n'y pré-existe pas) un fichier intitulé
titi qui contiendra donc en écriture l'argument
coucou.
Tu admireras la concision
stendhalienne [Stendhal avait pris pour modèle d'écriture la première phrase du code pénal Français : «Tout condamné à mort aura la tête tranchée»] du langage de commande :
echo coucou >> ~/Desktop/titi, là où
ce spécialiste de la rhétorique macomaniac fait proliférer des phrases échevelées à la manière de
Claude Simon dans son roman «
L'Herbe».
Mais revenons au problème précis qui t'importe --> il te faut - disons-le tout à trac - créer un fichier qui n'existe pas encore : le fichier
fstab à l'emplacement précis du répertoire invisible :
/private/etc (le premier
/ désignant le point de montage ou racine de l'arborescence générale de l'OS, et les
/ suivants les embranchements à partir de cette racine logique). Le fichier
fstab (
filesystem tab : table d'information statique des systèmes de fichiers de disques), dès qu'il se trouve présent avec des instructions données à l'emplacement indiqué, est reconnu par un processus qui tourne tout le temps dès le démarrage du Système : le processus
launchd, lequel va éveiller un petit 'démon domestique' (autant dire un '
famulus) : le
daemon : diskarbitrationd pour lui faire exécuter l'instruction du fichier
fstab. Selon ce qui est stipulé dans ce fichier, le
daemon : diskarbitrationd est capable d'exclure certaines partitions de disques du montage en volume au démarrage, de ne les monter au contraire qu'en
lecture seule ou de les monter en tel
format etc.
Encore faut-il que l'instruction écrite dans le fichier
fstab le soit dans le langage que le programme du
daemon : diskarbitrationd peut comprendre. Pour cela, il convient que l'instruction ait la forme générale :
Bloc de code:
Identifier, mount point, fs type, options
qui se concrétise par exemple en :
Bloc de code:
UUID=00000000-0000-0000-0000-000000000000 none hfs rw,noauto
càd. que l'instruction se distribue en : mention de l'
UUID de volume [saut d'espace] mention du
point de montage du Système de fichiers [saut d'espace] mention du
format de montage [saut d'espace] mention des
options de montage agglutinées avec une simple virgule en séparateur :
permissions de lecture/écriture,
mode automatique ou manuel de montage en volume etc..
En ce qui te concerne, l'instruction qui devra être exactement écrite au fichier
fstab est :
Bloc de code:
UUID=CA8B1F8A-D852-46FD-A7B2-95E9F7462757 none ntfs rw,auto,nobrowse
(càd. l'
Identifiant Unique Universel du volume du disque concerné préfixé de
UUID=,
none pour "aucun point de montage" spécifié,
ntfs pour le format
Windows requis,
rw,auto,nobrowse pour requérir un montage en
lecture/écriture +
automatique +
non_navigation).
Voilà l'instruction finale que, dans le «
Terminal», le programme
echo qu'on va invoquer, se trouve chargé d'aller inscrire "en écho" dans un fichier
fstab de
/private/etc à destination de la prise en charge par le
daemon : diskarbitrationd.
♧
Eh bien! La chose à savoir à présent qu'on est revenu au «
Terminal», c'est que le programme
echo est un peu court en privilèges de "générer des échos" - dès lors qu'on s'attaque à une "chambre d'échos" aussi sensible que le répertoire
etc qui englobe des fichiers de configuration-système extrêmement critiques auquels la permission d'
écriture est strictement réservée à
root et qui sont donc de ce fait "verrouillés" en écriture (par exemple le fichier
sudoers). Même si l'utilisateur
admin préface l'invocation de ce programme
echo par
sudo (
Substitute User DO --> opérer en qualité d'utilisateur susbtitut de
root, le Super-User) - il ne pourra pas créer/éditer le fichier
fstab dans
etc même après s'être authentifié par son mot-de-passe
admin --> la réponse invariable sera :
permission denied ("permission refusée").
Donc, à mon avis,
jamais une commande du type :
Bloc de code:
sudo echo "CA8B1F8A-D852-46FD-A7B2-95E9F7462757 none ntfs rw,auto,nobrowse" >> /etc/fstab
n'a marché ni ne marchera, pour cette raison
(et l'auteur anonyme qui la propose dans OSXDaily est manifestement un joueur de pipeau ou de flûte de Hamelin
).
Si tu es attentif, tu remarqueras que
bompi 
(qui est un maître
ès langage informatique - tandis que je n'y suis qu'un glosateur fantasque qui se complaît à gribouiller dans les marges) a pris soin d'intercaler une invocation de
sh (une variante du
Shell : bash) entre
sudo et
echo pour pallier cette déficience du programme
echo à pouvoir être élevé en privilèges aux fins d'éditer le fichier
fstab (sans compter les raffinements d'échappements dans la rédaction de l'argument appendu à l'option
-c).
Mais comme tu sembles dérouté par cet "échappatoire" aux déficiences
ès montée en privilèges du programme
echo 
- je te propose une variante bien dans ma manière de
Paysan du Danube -->
- Dans le «Terminal» tu commences par saisir :
et ↩︎ (presse la touche 'Entrée' du clavier pour activer la commande) --> une demande de password s'affiche (car commande sudo) --> tape ton mot-de-passe admin à l'aveugle - aucun caractère ne se montrant à la frappe - et derechef ↩︎ --> cette commande te fait passer carrément dans le Shell de root : le sh-3.2# où, forcément, tu as désormais tous les droits, puisque tu t'y confonds provisoirement avec root - de sorte que ta mise en œuvre de tel ou tel programme binaire ne rencontre plus d'obstacle de droits exécutifs.
- Tu te contentes alors d'enchaîner sans chichis ni fioritures, en mode brut d'écriture -->
Bloc de code:
echo UUID=CA8B1F8A-D852-46FD-A7B2-95E9F7462757 none ntfs rw,auto,nobrowse >> /etc/fstab
et ↩︎ (sans aucun caractère d'échappement ni aucun guillemet - parfaitement superfétatoires, car le programme echo <ici sans sudo car lancé à pleins droits par root lui-même> comprend directement tout ce qui suit son invocation et qui précède le symbole de direction >> à une adresse de fichier préfacée par la / du point de montage comme un seul argument, éventuellement décomposable en sous-parties séparées entre elles par un espace vide chaque fois. Ainsi : UUID=CA8B1F8A-D852-46FD-A7B2-95E9F7462757 none ntfs rw,auto,nobrowse est strictement équivalent à : "UUID=CA8B1F8A-D852-46FD-A7B2-95E9F7462757 none ntfs rw,auto,nobrowse", ou encore à : \"UUID=CA8B1F8A-D852-46FD-A7B2-95E9F7462757 none ntfs rw,auto,nobrowse\").
DONE