Как заставить cdrecord НЕПРЕРЫВНО использовать системные ресурсы?

Zsh запускает некоторый код до и после каждой команды. Это обычно используется для обновления подсказки и заголовка терминала. Вполне вероятно, что часть этого кода ошибочна и изменяет переменную a(, если это происходит только с a), или иногда оценивает часть командной строки, когда этого не следует (, если это происходит с каждым именем переменной ). ].

Проверьте свои функции ловушки и отладочную ловушку:

which precmd
which preexec
which zshaddhistory
print -l $precmd_functions
print -l $preexec_functions
print -l $zshaddhistory_functions
which TRAPDEBUG
trap | grep DEBUG

Еще один способ получить представление о том, что происходит, — включить трассировку .

~ mary@advv
$ set -x
+ …
~ mary@advv
$ a=good
+ …
~ mary@advv
$ echo "$a"
evil

Код, который появляется вместо , — это хуки, о которых я упоминал выше, и какая-то их часть должна быть виновником.

Один из экспериментов, который может сузить круг,:

~ mary@advv
$ a=good; echo "$a"

0
14.09.2021, 17:44
1 ответ

Если cdrecordустановлен правильно или вызывается пользователем root по мере необходимости, cdrecordвсегда ставит себя в наивысший приоритет в реальном времени и блокирует память.

Это дает cdrecordнаилучшие условия для письма.

Вы, к сожалению, не упомянули операционную систему, поэтому могу дать только общий совет.

  • cdrecordвсегда требуются специальные системные привилегии, чтобы иметь возможность отправлять любую команду SCSI на любое устройство SCSI.

  • Чтобы получить специальные системные привилегии в обычной системе UNIX, вы устанавливаете cdrecordsuid root, чтобы предоставить ему все доступные привилегии.

  • В Solaris вы предоставляете пользователю cdrecordточно необходимые детализированные привилегии, делая соответствующие записи в базе данных pfexecв /etc/security.

  • В последних версиях Linux вы можете предоставить соответствующие детализированные возможности с помощью команды setcap.

Если вы, например. запустить непривилегированный cdrecord в Linux,вы получите следующий результат:

cdrecord -scanbus
Cdrecord-ProDVD-ProBD-Clone 3.02a10 2021/07/23 (x86_64-unknown-linux-gnu) Copyright (C) 1995-2019 Joerg Schilling
cdrecord: Insufficient 'file read' privileges. You will not be able to open all needed devices.
cdrecord: Insufficient 'file write' privileges. You will not be able to open all needed devices.
cdrecord: Insufficient 'device' privileges. You may not be able to send all needed SCSI commands, this my cause various unexplainable problems.
cdrecord: Insufficient 'memlock' privileges. You may get buffer underruns.
cdrecord: Insufficient 'priocntl' privileges. You may get buffer underruns.
cdrecord: Insufficient 'network' privileges. You will not be able to do remote SCSI.
cdrecord: Keine Berechtigung. Cannot open '/dev/sg0'. Cannot open or use SCSI driver.
cdrecord: For possible targets try 'cdrecord -scanbus'. Make sure you are root.
cdrecord: For possible transport specifiers try 'cdrecord dev=help'.

, который напоминает вам о необходимости запустить cdrecord с необходимыми привилегиями.

Так что просто используйте недавний cdrecord, и он сделает все правильно для вас.

2
14.09.2021, 23:25

Теги

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