Ubuntu 14 - невозможно использовать sudo echo для перезаписи файлов [дубликат]

Для сценариев bash ubuntu 12.04 я мог запускать команды, подобные приведенному ниже, для перезаписи файлов:

sudo echo 'line1   
line2
line3' > /etc/some/config/file.conf

Начиная с Ubuntu 14.04, теперь мне нужно разбить его, чтобы получить такое же поведение, например:

sudo echo 'line1
line2
line3' | sudo tee /etc/some/config/file.conf

Полагаю, это дополнительная мера безопасности? Есть ли способ вернуться к старому поведению?


ОБНОВЛЕНИЕ

Как некоторые правильно заметили, такое поведение согласуется с Ubuntu 12.04 и Ubuntu 14.04. Я полагаю, что я запутался, но поскольку , если кто-то запускает команду в сценарии bash, вызываемом с помощью sudo, он выполняется нормально, однако, вставка команды в CLI приводит к отказу в разрешении . Я сравнивал яблоки с апельсинами.

0
задан 20 June 2014 в 15:50

1 ответ

Вы не можете непосредственно использовать > с sudo путем Вы делаете его, причиной является перенаправление, выполняется оболочкой а не sudo, и следовательно команда не запишет в файл из-за полномочий.

Обратитесь к этому вопросу для соответствующих решений для этого:

Обновление:

В случае, если Вы копируете:

sudo echo 'line1   
line2
line3' > /etc/some/config/file.conf

в файл сказать scrip.sh, и затем выполните сценарий как

sudo bash script.sh

Вы не получите ошибку, и сценарий выполнится успешно, потому что в этом случае, Вы запускаете скрипт путем предоставления оболочке соответствующие полномочия (sudo bash).

5
ответ дан 20 June 2014 в 15:50

Другие вопросы по тегам:

Похожие вопросы: