Вы можете использовать команду cut
. В вашем случае вы можете указать ему три параметра:
-d ','
: это разделитель вашей строки. В вашем случае это ,
. Вы можете заменить разделитель на любой, какой захотите. -f 4,7,8
: представляет часть строки, которую вы хотите получить (разделенную запятой). В данном случае это 4-я, 7-я и 8-я части. Вы можете указать диапазон, используя, например, эту форму 1-8
. file.ext
: это ваш файл журнала. Допустим, ваш файл журнала - file.log
(очень креативное имя):
cut -d ',' -f 1-5 file.log
: Это даст вам date = "2017-01-03 08:30:02 -0500" fac = f_kernel_ipfilter, area = a_general_area
cut -d ',' -f 3,5,6 file.log
: это даст вам fac = f_kernel_ipfilter, type = t_attack, pri = p_major
cut -d ',' -f 4 file.log
: Это даст вам type = t_attack
cut
будет проходить через все строки вашего файла. Если вы хотите пропустить строки, которые не содержат указанного вами разделителя, используйте параметр -s
.
Ответ на ваш вопрос - «как бывает». Если у вас есть доступ NOPASSWD
через sudo
для выполнения любой команды, то любая программа или сценарий потенциально может перейти на уровень суперпользователя с помощью простого системного вызова.
Если ваша конфигурация sudoers
более разумна, разрешите NOPASSWD
доступ только к определенному списку команд, которые, как ожидается, будут запускаться как пакетные задания (или достаточно часто, чтобы сделать NOPASSWD
, возможно, разумно), то попытка sudo
других команд по-прежнему будет блокироваться без пароля.