Рейтинг:0

Зачем использовать тройник с wget? Разве это не лишнее?

флаг in

Итак, я наткнулся на этот код для загрузки youtube-dl с помощью wget, который подключается к tee: Как я могу обновить youtube-dl?

Код:

wget -O - https://yt-dl.org/downloads/latest/youtube-dl | sudo tee /usr/local/bin/youtube-dl >/dev/null

В чем разница при сравнении со следующим?:

sudo wget -P /usr/local/bin/ https://yt-dl.org/downloads/latest/youtube-dl

или даже в этом отношении:

sudo wget -O /usr/local/bin/youtube-dl https://yt-dl.org/downloads/latest/youtube-dl

Есть ли что-то особенное в использовании wget с tee, чего мне здесь не хватает? Если я правильно понял, первый просто загружает файлы и выводит загружаемые файлы на стандартный вывод, который затем передается через tee в указанный файл, а также на стандартный вывод, при этом любой дополнительный стандартный вывод перенаправляется на /dev/null. Не является ли первая строка кода излишней и чрезмерно сложной, когда двух последних вполне достаточно?

Еще один вопрос по поводу использования тройника вот так:

Можно ли теоретически также заменить тройник на кошку? Как это:

wget -O - https://yt-dl.org/downloads/latest/youtube-dl | sudo cat >/usr/local/bin/youtube-dl

или это:

wget -O - https://yt-dl.org/downloads/latest/youtube-dl | sudo cat /usr/local/bin/youtube-dl

Когда я делаю первое, я получаю этот вывод (я взял только последние три строки):

Сохранение в: «STDOUT».
- 0%[ ] 0 --.-КБ/с за 0,003 с  
Не удается написать -â (Успех).

И когда я делаю последнее, я получаю тот же результат только без «Невозможно записать в -â (Успех)».

Заранее спасибо за любое объяснение!

Keith5001 avatar
флаг pw
youtube-dl -U сделает обновление
флаг hr
Когда вы делаете `| sudo cat >file`, `cat` запускается с повышенными привилегиями, но перенаправление (которое требует их) — нет. Когда ты так `| sudo cat file` вы записываете содержимое `file` в стандартный вывод, а не записываете стандартный ввод `cat` в `file`.
mysterium avatar
флаг in
@steeldriver, спасибо за объяснение. Как мне это написать, если я хочу, чтобы перенаправление имело повышенные привилегии?
Рейтинг:3
флаг in

Разница в том, что вы не выполняете wget с повышенными привилегиями. Это позволяет уменьшить поверхность атаки.

  • | судо тройник команда выполняется wget с обычными привилегиями и использует повышенные привилегии только для записи данных в выбранный файл.
  • С судо wget, wget уязвимости могут быть использованы с повышенными привилегиями.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.