Terminal: permission denied

jmos

Membre actif
24 Novembre 2007
523
10
Région Parisienne
Bonjour je cherche à copier un fichier sur une clef USB par le terminal au moyen de la commande cat et j'obtiens à chaque fois la réponse "permission denied.

Je suis sous Mountain Lion à jour, ma clef USB est formaté en FAT32 ( le but est de pouvoir transporter des fichiers de mac vers windows et vice versa.

ma syntaxe est la suivante:
cat {file_name} > /dev/disk1 && sync ( dev/disk1 est bien le nom de la clef USB, verifié par uen commande diskUtil list.
et la réponse est /dev/disk1: Permission denied

j'ai essayé avec sudo, mais j'ai la même réponse. Il ne me demande même pas mon mot de passe, mais je suis sous une session administrateur. Ma clef USB est correctement formaté et en bon état. Elle n'a aucun dispositif de verrouillage.
Si quelqu'un a une idée, je le (ou la) remercie par avance...
 
Bonjour je cherche à copier un fichier sur une clef USB par le terminal au moyen de la commande cat et j'obtiens à chaque fois la réponse "permission denied.

Je suis sous Mountain Lion à jour, ma clef USB est formaté en FAT32 ( le but est de pouvoir transporter des fichiers de mac vers windows et vice versa.

ma syntaxe est la suivante:
cat {file_name} > /dev/disk1 && sync ( dev/disk1 est bien le nom de la clef USB, verifié par uen commande diskUtil list.
et la réponse est /dev/disk1: Permission denied

j'ai essayé avec sudo, mais j'ai la même réponse. Il ne me demande même pas mon mot de passe, mais je suis sous une session administrateur. Ma clef USB est correctement formaté et en bon état. Elle n'a aucun dispositif de verrouillage.
Si quelqu'un a une idée, je le (ou la) remercie par avance...
Pourquoi passer par le terminal… :mouais:

Un glisser/déposer depuis le Mac vers la cléf en Fat devrait suffire sauf si le fichier excède les 4,4 Go et des brouettes… ;)
 
Dernière édition:
Désolé je me suis mal exprimé
J'ai besoin d'une écriture séquentielle (print) des fichiers vers la clé, ce que ne fait pas toujours le Finder...
Et je n'avais pas fait cette manip depuis longtemps ( Snow Leopard la dernière fois ). C'est aussi la première mois que je rencontre ce problème, y compris en utilisant sudo avant la commande..
 
Tu te trompes entre le point de montage et le fichier device du support (ici la clef USB).
Si le device n'est pas monté, il faut commencer par le monter.

Ensuite tu pourras copier sur le point de montage.

Par exemple, chez moi, une clef USB est au minimum le troisième support connecté et est représentée par /dev/disk3 ; la partition à monter est la première : /dev/disk3s1.
Elle se monte dans le volume /Volumes/MISC.
C'est dans ce dernier qu'il faut copier les données.
 
C'est probablement un problème de permissions. As-tu essayé de faire un :

sudo chmod 755 /dev/disk3

?

J'ai été confronté au même problème que toi et ça a fonctionné. N'oublie pas de démonter ton volume ensuite :

diskUtil unmountDisk /dev/disk3

A voir donc...

[EDIT] évidemment remplacer disk3 par ton propre niveau hiérarchique...
 
Dernière édition:
Je pense que ce n'est pas ça qu'il faut faire.
/dev/disk1 est un device pas un fichier normal. On ne change pas ses autorisations a gusto.

Une nouvelle fois : /dev/disk1 représente un disque physique. Or on écrit en général dans une partition (ou slice : la dénomination varie). Bref, on écrit dans /dev/diskNsP pas dans /dev/diskN. Sauf si on utilise des programmes spéciaux pour faire des choses spéciales.
Ce qui n'est pas le cas ici.

Histoire de me détromper (cas d'un partitionnement particulier), j'attends toujours de voir le résultat de la commande diskutil. Cela dit, depuis un mois et demi, le problème a dû être réglé sans qu'on en soit informé.
 
Histoire de me détromper (cas d'un partitionnement particulier), j'attends toujours de voir le résultat de la commande diskutil. Cela dit, depuis un mois et demi, le problème a dû être réglé sans qu'on en soit informé.

Non le problème n'a pas été réglé avec un Mac. J'en ai eu marre au bout de deux heures et je suis allé chez un ami qui a un PC avec Ubuntu. Le problème a été réglé en 10 minutes.

Comme d'habitude, le Mac est super quand tu veux bien rester à l'intérieur du monde Apple ( construit pour simplifier la vie des utilisateurs, et c'est parfaitement au point et bien huilé dans 95% des utilisations ), mais quand tu as un truc vaguement "geeky", alors là tu vas ramer...
 
C'est sûr. Je rame comme un fou. :D
 
j'arrive trop tard on dirait.....
J'allais faire les mêmes remarques que Bompi:

On n'écrit pas directement sur dev/disk1 mais sur dev/disk1s1 par exemple (qu'il faut commencer par monter) puis aller voir dans /Volumes
Ensuite, pour une clé usb, je doute que ce soit disk1... plutôt disk3



C'est sûr. Je rame comme un fou. :D

Attention, tu vas finir par swapper! :D
 
Dernière édition:
Pourquoi ne pas utiliser la commande cp ? Qu'elle est la nature du fichier que tu veux copier ? Une photo, une image disque, ... , ?

Sinon, on peut effectivement utiliser cat pour faire des copies mais dans ce cas on l'utilise comme suit :

  • cat toto.txt > /Volumes/ma_cle/toto.txt
  • cp toto.txt /Volumes/ma_cle/toto.txt
  • cat /dev/disk3 > image.img (sauvegarde)
  • cat image.img > /dev/disk3 (restaure)

Attention, la commande 4 remplace le contenu du disque par le contenu de l'image disque image.img !

Tu peux aussi utiliser la commande DD pour sauvegarder/restaurer :
Bloc de code:
dd if=/dev/disk3 of=image.img
Cette commande est équivalente à la commande 3.

---------- Nouveau message ajouté à 13h00 ---------- Le message précédent a été envoyé à 12h54 ----------

C'est probablement un problème de permissions. As-tu essayé de faire un :

sudo chmod 755 /dev/disk3

Surtout pas ! Pas touche aux fichiers système, surtout les fichiers spéciaux /dev
 
Bonne remarque, effectivement : si on copie directement sur le device il faut copier quelque chose comme une image disque, pas un fichier standard.

Par ailleurs, lorsqu'on utilise directement le device, il faut utiliser sudo (question de droits) et s'assurer que le device n'est pas monté (problème de partage de ressources).
 
C'est sûr. Je rame comme un fou. :D

Pardon, je me suis mal exprimé. Je suis sous mac depuis plus de 10 ans et je ne suis pas près de revenir en arrière:) je voulais simplement dire qu'il est parfois plus "simple" de bricoler avec un pc dans certains cas, la liberté de manoeuvre ( et les risques qui vont avec.....:eek:) y étant plus accessible que sur un mac. C'est tout.
Maintenant je suis conscient que je n'avais peut-être pas tout bien fait... ( ceci dit, disk1 était bien le nom de ma clé USB, j'avais bien utilisé sudo, et le device n'était pas monté...).
 
Pardon, je me suis mal exprimé. Je suis sous mac depuis plus de 10 ans et je ne suis pas près de revenir en arrière:) je voulais simplement dire qu'il est parfois plus "simple" de bricoler avec un pc dans certains cas, la liberté de manoeuvre ( et les risques qui vont avec.....:eek:) y étant plus accessible que sur un mac. C'est tout.
Maintenant je suis conscient que je n'avais peut-être pas tout bien fait... ( ceci dit, disk1 était bien le nom de ma clé USB, j'avais bien utilisé sudo, et le device n'était pas monté...).
Pour ce genre de manipulation, Mac OS X est tout à fait semblable aux autres UNIX. Semblable mais différent car tous les UNIX sont différents ;)

Quoi qu'il en soit de la commande elle-même, note quand même que copier ainsi un fichier directement sur un device (c-à-d le pseudo-fichier qui le représente) n'a de sens que si ce fichier est lui-même l'image d'un système de fichiers. Ou, éventuellement, un fichier de bases de données qui serait géré directement par un serveur de base de données.

Dit autrement, avec cette méthode, on ne peut pas écrire un fichier de données simple (texte, image, ce que tu voudras) sur un device.
 
Juste pour info, voila les commandes que j'avais utilisées
1) diskutil

/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *160.0 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 159.2 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *7.7 GB disk1
1: Windows_FAT_32 USB2 7.7 GB disk1s1

2)sudo cat filename > /dev/disk1 && sync
-bash: /dev/disk1: Permission denied

dans lequel filename est in fichier en .iso

j'ai fait exactement les mêmes commandes sur un pc et tout a bien fonctionné.
 
Comme indiqué précédemment, il faudrait plutôt écrire :
Bloc de code:
sudo cat filename > /dev/disk1s1 && sync
Là, tu tentes d'écrire ton fichier dans la table de partition (/dev/disk1), tandis que tu veux écrire dans la première (et unique) partition de la clef (/dev/disk1s1).
Par ailleurs, comme la clef est sans doute montée, il y a concurrence d'accès et il faut la démonter au préalable.

Mais pour copier ton image ISO, la commande dd est peut-être préférable (et elle existe aussi sur n'importe quel UN*X).

Enfin, je dirais (c'est à vérifier) que la redirection n'est pas intégrée à la commande passée à sudo. Donc il faudrait peut-être bien écrire :
Bloc de code:
sudo sh -c "cat filename > /dev/disk1s1 && sync"
 
Dernière édition:
Je n'ai pas ma clé usb sur moi ( les commandes précédentes, je les ai récupérées dans le terminal et je n'avais pas fait de mount, juste un diskutil pour avoir le nom du device )
Mais si je prends une clé USB que j'ai sous la main aussi formatée en fat 32, je sors après le nom du volume : msdos,local, nodev,nosuid, noowners