Какие меры предосторожности следует принимать при установке из файла deb без гарантии безопасности?

Время выполненияsay
  1. Is there a way to calculate how long it will take to output any say command without actually executing it? How?

Я не вижу способа сделать это с помощью каких-либо переключателей, предоставляемых командой say.

  1. If not, how can I use grep to pull out the real line?

Чтобы проанализировать вывод time, вы можете сделать следующее:

$ ( time say -v Alex "Hello there. How long will this take?" ) |& grep real
real    0m2.987s

В качестве альтернативы:

$ ( time say -v Alex "Hello there. How long will this take?" ) 2>&1 | grep real
real    0m2.987s

В приведенном выше примере мы поместили команду time...в подоболочку, а затем перенаправили STDOUT и STDERROR(|&)на grep. Форма 2>&1делает то же самое в ситуациях, когда |&не работает для вашей конкретной версии Bash.

/dev/null

Между прочим, если вы используете аргумент -o для say, вы можете ускорить перевод текста в аудио. Здесь, поскольку нам на самом деле не нужен аудиофайл, мы вместо этого направляем /dev/null:

$ ( time say -v Alex "Hello there. How long will this take?" -o /dev/null ) |& grep real
real    0m0.310s

В качестве альтернативы:

$ ( time say -v Alex "Hello there. How long will this take?" -o /dev/null ) 2>&1 | grep real
real    0m0.283s

Обратите внимание, насколько быстрее это происходит, когда не нужно использовать динамики для выполнения этой операции, это задержка при использовании аудио ввода/вывода. Вместо этого, направляя в файл, это намного эффективнее.

Расчет продолжительности звука

Чтобы определить продолжительность результирующего звукового файла say, вы можете сделать следующее:

$ say -v Alex "Hello there. How long will this take?" -o a.aiff && \
    ffmpeg -i a.aiff 2>&1 | grep Duration && rm a.aiff
  Duration: 00:00:02.85, start: 0.000000, bitrate: 364 kb/s

Здесь мы видим, что продолжительность результирующего звука составляет 2,85 секунды.

Дальнейшие улучшения?

Я рассматривал возможность передачи вывода из sayнепосредственно в ffmpeg, но say, по-видимому, не может этого сделать. Другие пришли к такому же выводу в ответах на вопросы и ответы под заголовком:Как направить вывод 'say' на другую команду .

Ссылки

0
07.08.2020, 14:19
2 ответа

Во-первых, для всего, что связано с Debian:

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law

Таким образом, этот вопрос актуален для каждой .debустанавливаемой программы.

Существует ряд мер предосторожности, которые вы можете предпринять:

  • загружать только из надежного источника;
  • проверьте свои хэши(apt-getчтобы для вас)
  • не устанавливайте "хитрое" ПО

Программное обеспечение может причинить вред при его выполнении. Неважно, где находится файл, /usr/binили /opt/...или даже в вашем домашнем каталоге. Количество вреда, которое он может нанести, зависит от uid, который запускает программное обеспечение. Root наносит больше вреда, чем обычный пользователь.

4
18.03.2021, 23:14

Suppose that I am given a deb file without guarantee that the software it installs does exactly what it is supposed to.

Всегда бывает так, что нет никакой гарантии, что программа делает именно то, что от нее требуется.

Первый серьезный риск при установке пакета возникает во время самой установки. :Пакет может предоставлять сценарии сопровождающего, которые запускаются от имени пользователя root и могут делать с системой все, что захотят. Однако вы можете изучить их перед установкой :

.
dpkg-deb -R /path/to/package.deb /tmp/extracted

затем просмотрите файлы в /tmp/extracted/DEBIAN.

Второй серьезный риск возникает каждый раз, когда вы запускаете программное обеспечение. Каталог установки не влияет на это, кроме как избежать проблем, связанных с PATH-. Программное обеспечение будет иметь доступ ко всему, доступному пользователю, которое оно запускает как :ко всем доступным для чтения файлам, доступным устройствам (, включая веб-камеры, микрофоны и т. д. ), сетевым ресурсам, включая Интернет, содержимому других окон, если оно работает под X... Все это можно в какой-то степени смягчить:

  • запуск от имени другого пользователя ограничит доступ к файлам и устройствам (при условии, что ваши разрешения установлены надлежащим образом );
  • работа в другом сетевом пространстве имен предотвратит доступ к сетевым ресурсам;
  • , работающий под управлением Wayland, а не X, предотвратит доступ к окнам, управляемым Wayland -.

Самый безопасный способ — установить и запустить такое программное обеспечение на виртуальной машине.

5
18.03.2021, 23:14

Теги

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