LINUX.ORG.RU
решено ФорумAdmin

Приватная директория для шелл скрипта

 


0

1

Привествую. Представим, что запущен некий шелл скрипт, он расшифровывает какие-то данные, сохраняет что-то в /tmp, запускается редактор, скрипт зашифровывает и удаляет промежуточный файл. Очевидно, что есть некоторая уязвимость в период существования промежуточного файла в расшифрованном виде. Можно примонтировать tmpfs только для данного юзера и сохранять туда, но хочется ещё надёжней - создать директорию, которая существует в ОЗУ и лишь в период работы данной сессии скрипта и видна лишь процессам порожденным из скрипта. Эдакий временный приватный загончик. Есть какие-нибудь варианты? Только без всякой левой экзотики, лишь стандартными средствами.

Перемещено hobbit из general

★★

Ответ на: комментарий от t184256

Если не знаешь как проверить, то попробуй unshare -rm и в нем mkdir -p /tmp/private && mount -t tmpfs tmpfs /tmp/private, должно получиться как раз «директория, которая существует в ОЗУ и лишь в период работы данной сессии скрипта и видна лишь процессам порожденным из скрипта».

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

root есть, не проблема, я ведь хотел монтировать tmpfs, но к ней будут иметь доступ и другой софт от рута, здесь дыра. Про namespaces впервые слышу, буду смотреть, спасибо, может мне оно и нужно, если в этот неймспейс и его артефакты (всякие файлы) снаружи никак не попасть.

Смахивает на паранойю может быть, но коль уж пишу подобную утилитку для удобства, то хочется сделать не «как обычно».

kvpfs ★★
() автор топика
Ответ на: комментарий от firkax

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

kvpfs ★★
() автор топика
Последнее исправление: kvpfs (всего исправлений: 1)
Ответ на: комментарий от kvpfs

но к ней будут иметь доступ и другой софт от рута, здесь дыра

Софт от рута и так и так будет иметь доступ куда угодно. Не запускай от рута сомнительный софт, это чревато проблемами.

если в этот неймспейс и его артефакты (всякие файлы) снаружи никак не попасть.

Рут снаружи (который настоящий) может попасть куда угодно. В том числе он может тупо сдампить всю физическую память компа и отправить её куда-нить по сети для дальнейшего анализа. Повторю, не пытайся прятаться от рута, лучше не запускай от рута что попало.

что сохраняется некий кэш на диске в результате её деятельности.

В свап может почти что угодно попасть без участия каких-либо процессов и их прав вообще. Хотя там как раз вроде есть настройки запрета. Штатные системные процессы мейнстримных дистров содержимое рандомных файлов никуда не копируют.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 3)

ЯННП

запущен некий шелл скрипт, он расшифровывает какие-то данные
запускается редактор

Какой редактор, человек редактирует или скрипт?

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

Если речь не про человеков то всё можно сделать «адним макаром» используя пайпы.

anc ★★★★★
()
Ответ на: комментарий от anc

Какой редактор, человек редактирует или скрипт?

Скрипт расшифровывает, запускает редактор, человек правит или нет и закрывает редактор, дальше скрипт смотрит - были ли правки, если да, то перешифровывает и отправляет в разные хранилища.

kvpfs ★★
() автор топика

Спасибо. Пока понял, что лучше монтировать ramfs, она без свопа, связываться ли с неймспейсами? Что-то мне подсказывает, что в общедоступном месте где-нибудь будет точка входа в это пространство, тогда непонятно зачем всё переусложнять.

kvpfs ★★
() автор топика
Ответ на: комментарий от AVL2

А оно может сделать доступ для конкретного PID и его детей и не пускать даже рута? Вряд ли, наверное. В конечном итоге забил, запускаю скрипт, проверяю в нём выключен ли своп, если да, то монтирую tmpfs и начинаю туда расшифровывать. Допускаю, что остаются какие-то дыры из-за systemd, которое лезет и что-то там проверяет (и кэширует).

kvpfs ★★
() автор топика