разрешение sudo отклонено

Я выполнил этот код:

sudo cat <<EOF | sudo sed -e "s,%,$,g" >/etc/init.d/dropbox
  echo "Hello World"
EOF

Но даже при том, что, я получаю "разрешение, отклоненное", вызываю Вас, должен быть корень для внесения изменений в/etc/init.d каталоге. И так или иначе, моя команда выше не работает.

Существует ли способ решить это?

3
задан 21.10.2010, 09:04

3 ответа

Перенаправление в файл обрабатывается ударом. Это поэтому не наследовало разрешения, данные sudo.

Использовать sudo tee для записи в файл как корень.

Попробуйте это:

cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
  echo "Hello World"
EOF

Заметьте это $, в двойных кавычках мог бы быть интерпретирован.

7
ответ дан 07.12.2019, 22:59

Вы могли предоставить себе персистентные su-права с
# sudo -s

затем Ваша команда (больше не нуждаются к sudo) и выходит с
# exit

Править:
Я предполагаю, что Вы спрашиваете связанный с Ubuntu, потому что Ваш вопрос отмечен с этим. В другом распределении как SuSe у Вас будет способность использовать
# su
вместо # sudo -s

4
ответ дан 07.12.2019, 22:59

Эта часть: sudo sed -e "s,%,$,g" >/etc/init.d/dropbox центр быть просмотренным как это:

sudo somecommand --put the result of the sudo command into--> /etc/init.d/dropbox

Таким же образом как это:

ls somedirectory > filename
ls somedirectory --put the result of the ls command into--> filename

Это означает, что записи файла будут делаться как Ваш текущий пользователь, не как корень.

Можно решить его при помощи tee поскольку Benoit показывает в своем ответе.

0
ответ дан 07.12.2019, 22:59

Теги

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