web-dev-qa-db-fra.com

Erreur, même avec Sudo: "dd: échec de l’ouverture de‘ / dev / sda1 ’: autorisation refusée" (entrée dd acheminée à partir de gzip)

Ma commande qui ne fonctionne pas:

Sudo gzip -dc sda1.image.gz | dd of=/dev/sda1

renvoie l'erreur suivante avant même que j'aie eu la possibilité d'entrer mon mot de passe:

dd: failed to open ‘/dev/sda1’: Permission denied
[Sudo] password for ken:

J'ai aussi essayé sans les options "-dc" et j'obtiens la même erreur.

Cependant, la commande dd sans gzip, en utilisant un fichier non compressé, fonctionne:

Sudo dd if=sda1.image of=/dev/sda1

Il semble que le Sudo ne s’applique qu’à la première commande et non à la séquence complète des commandes. Si je reste dans la même session de terminal et répète la commande, je ne reçois pas le mot de passe Prompt (mon authentification semble persister) et pourtant je reçois toujours la même erreur (comme si mon authentification ne s'appliquait pas à l'opération d'écriture/dev ). La même erreur se produit lorsqu’elle est exécutée à partir d’un script/bin/sh.

Comment dois-je construire mes commandes pour décompresser mon image sur le périphérique?

J'utilise Ubuntu 14.04 LTS dans une fenêtre de terminal.

11
Ken Conrad

Sudovous manque dans l’autre côté du pipeline:

Sudo gzip -dc sda1.image.gz | Sudo dd of=/dev/sda1

Dans un format de commande <command> | <command> | [...], chaque commande du pipeline nécessitant Sudodoit être exécutée à l'aide de Sudoname__, et pas seulement la première.

Dans ce cas, vous n'aurez peut-être pas besoin d'utiliser Sudosur gzip -dc sda1.image.gz, à moins que vous n'ayez pas le droit de lecture sur le fichier:

gzip -dc sda1.image.gz | Sudo dd of=/dev/sda1

En général, si toutes les commandes à exécuter dans un pipeline requièrent Sudoname__, l’un des moyens permettant d’écrire Sudodans chaque commande consiste à exécuter la commande entière dans un sous-shell appelé à l'aide de Sudoname__:

Sudo bash -c '<command> | <command> | [...]'
11
kos