UEFI Grub не находит файл конфигурации

Насколько я могу судить, исходный код Bash не различает SYS_BASHRCи другие включенные rc-файлы после компиляции. Кроме того, SYS_BASHRCможет быть неопределенным, и полученный двоичный файл вообще не будет использовать системный rc.

Однако все файлы, используемые процессом, могут быть обнаружены с помощью strace. Bash включает rc-файлы, только если он запускается в интерактивном режиме, поэтому:

echo | strace -e openat -o tmp.log bash -i 2>/dev/null

Результирующий файл tmp.logбудет содержать нужную информацию:

openat(AT_FDCWD, "/etc/bash.bashrc", O_RDONLY) = 3

К сожалению, он также будет содержать большое количество строк, например. для библиотек (и перенаправление на /dev/null ). Я не уверен, как выбрать правильную строку в каждом случае. Но на практике я думаю, что это, скорее всего, будет первая не -библиотека в /etc/:

.

grep -v O_CLOEXEC tmp.log | grep \"/etc | head -n 1 | sed -e 's/.*"\(.*\)".*/\1/'

0
04.05.2021, 22:48
0 ответов

Теги

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