Правило udev создает символьную ссылку на blockdevice (SUBSUSTEM=="block"
) с информацией 8,1 (ENV{MAJOR}=="8", ENV{MINOR}=="1"
Первый раздел на первом диске) в Вашей установке. Ссылку называют/dev/root с SYMLINK+="root"
, знак "плюс" говорит, что udev не должен перезаписывать предыдущие ссылки, созданные к этому устройству, а скорее добавлять еще одну ссылку к нему.
Другое правило как найденный в некоторой форме во многих системах Linux является этим:
SUBSYSTEM=="block", ENV{ID_SERIAL}=="DVD_Drive_USB2_10000E0008441C1E", SYMLINK+="cdrom"
Это говорит, что blockdevice с serialnumber DVD_Drive_USB2_10000E0008441C1E должен быть symlinked к/dev/cdrom
Я не совсем уверен, почему rkhunter жалуется на это, но это происходит правильно из-за типа/dev/.udev/rules.d/root.rules, не являющегося устройством или символьной ссылкой, а скорее файлом. Я не думаю, что это опасно.
На основании ваших пояснений в различных комментариях, кажется, что вам следует использовать опцию grep -f
для чтения списка шаблонов непосредственно из файла
-f FILE, --file=FILE
Obtain patterns from FILE, one per line. The empty file
contains zero patterns, and therefore matches nothing. (-f is
specified by POSIX.)
Вы можете добавить -F
для принудительной интерпретации в виде буквенных ('фиксированных') строк, если только файл не содержит шаблонов регулярных выражений i. e.
grep -Ff file_of_lines file_to_search_for_those_lines
Результатом будет список всех строк в file_to_search_for_those_lines
, которые соответствуют любой из строк в file_of_lines
.
Для чтения файла строка за строкой можно использовать команду read
. Например:
while read -r line
do
[[ $line = 'syntax error at or near "?" at character 1' ]] && printf '%s\n' "$line"
done < file1.txt
Если я вас правильно понял, вы хотите, чтобы grep
работал только со строками с 1 по n .
Для этой цели вы можете использовать инструмент head
:
head -n 20 your_file | grep ...
Это заставит grep
работать с первыми 20 строками your_file
. Замените 20 релевантным для вас n .
Альтернативная интерпретация и ответ
Мне только что пришло в голову, что вы можете иметь в виду, что file1.txt
содержит шаблоны, которые хотели бы попытаться сопоставить с grep
. Если , что - это так, вам нужен параметр -f
для grep
:
grep -f file1.txt files_you_want_to_search
Параметр -f
сообщает grep
, чтобы получить его шаблоны из file1.txt
, где он предполагает один шаблон на строку (как вы показываете в своем сообщении). В таких случаях вы также можете добавить параметр -F
, чтобы гарантировать, что любые метасимволы регулярных выражений в файле не имеют особого значения, а интерпретируются буквально:
grep -Ff file1.txt files_you_want_to_search