Помилка навіть при sudo: "dd: не вдалося відкрити" / dev / sda1 ': дозвіл відхилено "(вхід dd, перенесений з gzip)


15

Моя команда, яка не працює :

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

повертає таку помилку ще до того, як я мав можливість ввести свій пароль:

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

Я також пробував без параметрів "-dc" і отримую ту ж помилку.

Однак команда dd без gzip, використовуючи нестиснений файл, працює :

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

Схоже, судо застосовується лише до першої команди, а не до всієї послідовності команд. Якщо я залишаюсь на тому самому термінальному сеансі і повторюю команду, я не отримую запит на введення пароля (моя автентифікація, здається, зберігається), і все ж я отримую ту ж помилку (як якщо б моя аутентифікація не застосовується до операції запису / dev ). Ця ж помилка виникає при виконанні з / bin / sh сценарію.

Як я повинен побудувати мою команду (команду), щоб розпакувати зображення на пристрій?

Я використовую Ubuntu 14.04 LTS у вікні терміналу.

Відповіді:


18

Ви відсутні sudoв іншій частині трубопроводу:

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

У <command> | <command> | [...]форматі команд кожна команда конвеєра, який вимагає, sudoповинна виконуватися з використанням sudo, а не лише перша.

В цьому випадку ви , можливо , не потрібно використовувати sudoна gzip -dc sda1.image.gz, якщо ви не маєте права на читання файлу:

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

Взагалі, якщо всі команди, які потрібно виконати в конвеєрі, вимагають sudo, один із способів запису sudoв кожну команду - це запустити всю команду в підзахисті, на яку викликається sudo:

sudo bash -c '<command> | <command> | [...]'

3
@KenConrad Якщо ця відповідь вирішила вашу проблему, будь-ласка, позначте її як прийняту відповідь, натиснувши на позначку під підрахунком підсумків, щоб інші користувачі могли знати, що ця відповідь працює на вас і, можливо, також отримає користь від неї.
kos
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.