CSV - Добавить кавычки вокруг отсутствующих полей

Работая с setenforce 0, я смог получить следующие разрешающие правила, используяaudit2allow:

#============= ifconfig_t ==============
allow ifconfig_t net_conf_t:file mounton;
allow ifconfig_t openvpn_etc_t:file { getattr open read };
allow ifconfig_t openvpn_exec_t:file { execute execute_no_trans open read };
allow ifconfig_t openvpn_tmp_t:dir { read write };

Я также получил это правило из тех же журналов

#============= ifconfig_t ==============

#!!!! WARNING: 'tmp_t' is a base type.
allow ifconfig_t tmp_t:dir { read write };

Чтобы не допускать этого, я создал подпапку с меткой openvpn_tmp_tпод /tmpи запустил openvpnс аргументом --tmp-dir, указывающим на этот каталог.


После этого я так и не смог запустить службу. Глядя на journalctl -xe, я увидел, что возникла проблема с загрузкой файла конфигурации :

.

-- Unit myvpn.service has begun starting up.
Jul 17 06:19:56 castiel ip[22825]: Options error: In [CMD-LINE]:1: Error opening configuration file: /etc/openvpn/profiles/myprofile.ovpn
Jul 17 06:19:56 castiel ip[22825]: Use --help for more information.
Jul 17 06:19:56 castiel systemd[1]: myvpn.service: Control process exited, code=exited status=1
Jul 17 06:19:56 castiel systemd[1]: Failed to start OpenVPN connection to myprofile.ovpn.

Я попробовал еще раз с setenforce 0, и он смог запуститься. Удивительно, но в журнале аудита ничего об этом не было.

Я искал и наткнулся на старый вопрос в списке рассылки Fedora selinux . По-видимому, существует правило dontaudit, которое блокирует регистрацию некоторых сообщений. Это можно отключить с помощьюsemodule -DB(или -, включив с помощью semodule -B).

При регистрации остальных ошибокУ меня есть еще несколько строк, которые я превратил в правила сaudit2allow:

#============= ifconfig_t ==============
allow ifconfig_t openvpn_etc_t:dir search;
allow ifconfig_t openvpn_tmp_t:dir search;

#============= init_t ==============
allow init_t ifconfig_t:process noatsecure;
allow init_t kernel_t:unix_stream_socket { read write };

Комбинируя эти политики, я смог запустить openvpn внутри сетевого пространства имен через systemd.

Я до сих пор не уверен, насколько безопасны эти правила и есть ли лучший способ сделать это.

0
19.09.2019, 22:29
2 ответа

Похоже, вы обрабатываете csv вручную. Я не знаю ни одного встроенного -считывателя csv на каком-либо языке, который не смог бы обрабатывать эти пустые поля без явных кавычек. Возможно, вы захотите переосмыслить способ обработки вашего CSV-файла вместо того, чтобы пытаться его исправить.

0
28.01.2020, 02:22

Думаю, подойдет простая sedкоманда:

sed -e 's/^,/"",/' -e 's/,$/,""/' -e 's/,,/,"",/g' file

Вывод (, если есть ведущая запятая):

1,2,3,4,5,6,7,8
"","AK","87","86","81","83","78","",""

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

3
28.01.2020, 02:22

Теги

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