Скрытие конфиденциальной информации в файлах от пользователя, но не от сценариев оболочки в linux

Для обработки JSON используйте инструмент JSON, например. jq(обычно это пакет в вашем дистрибутиве):

jq -j '.properties.id, ",", .([ .geometry.coordinates | recurse | numbers | tostring] | join(",")), "))\n"' < your_file

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

1
18.08.2017, 01:36
3 ответа

Один из способов, возможно, единственный способ защитить конфиденциальную информацию — это НЕразрешать пользователям иметь ЛЮБОЙпрямой доступ к ней. , либо на своих личных машинах, либо на центральном сервере.

Например:

  • напишите скрипт-оболочку только для выполнения (т. е. без доступа для чтения), который обеспечивает ЕДИНСТВЕННЫЙ способ доступа к конфиденциальной информации при запуске с sudo. Это не нужно запускать от имени пользователя root, достаточно выделенного пользователя без полномочий root.
  • Не давайте копии скрипта пользователям для запуска на своих машинах. Вместо этого попросите их запустить его на вашем сервере (например, через ssh servername sudo myscript.sh), потому что это единственное место, где у вас есть шанс сохранить контроль доступа.
0
27.01.2020, 23:14

Один из способов с использованием SUID.

  1. Дайте разрешение на выполнение только для группы и других в сценарии оболочки и информационном файле.

  2. Напишите программу-оболочку C для вызова сценария оболочки.

  3. Установите бит SUID в исполняемом файле C. (chmod файл u+s)

    Конечный пользователь будет вызывать исполняемый файл C.

4
27.01.2020, 23:14

Простым вариантом является шифрование/дешифрование вторичного файла. Способы сделать это рассмотрены здесь-https://serverfault.com/questions/489140/what-is-a-good-solution-to-encrypt-some-files-in-unix

Обратите внимание, что, прочитав сценарий, можно легко получить ключ и изучить используемый метод шифрования, если только сам сценарий не является фактически скомпилированным кодом, хотя даже в этом случае он не является неуязвимым, поскольку его можно декомпилировать. Если это скомпилированный языковой код, в большинстве языков есть способ вызывать сценарии шифрования/дешифрования, и вы можете хранить только зашифрованную версию хранилища.

2
27.01.2020, 23:14

Теги

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