Linux - Изолировать процесс без контейнеров

Если вы просто хотите найти имена файлов, вы можете использовать следующую команду:

find -exec basename '{}' ';' | egrep '^.{100,}$'

Это запустит find , извлекая имя файла или каталога с помощью basename а затем найдите любое имя файла или имя каталога, содержащее не менее 100 символов. Если вы хотите найти имя файла точной длины, используйте {100} вместо {100,} .

Если вы хотите найти имена файлов, включая путь, сделайте следующее:

find | egrep '/[^/]{100,}$'

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

6
05.08.2017, 15:36
3 ответа

В зависимости от вашего дистрибутива и ядра вы можете использовать AppArmor или SELinux для хранения своих приложений. В целом я бы сказал, что AppArmor удобнее в настройке и обслуживании. Вики Ubuntu содержит несколько статей, объясняющих основные понятия.

2
27.01.2020, 20:25

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

.
chown app1 /var/lib/myapps/app1
chmod 700 /var/lib/myapps/app1
sudo -u app1 /var/lib/myapps/app1/run.sh

редактировать

Если оценщик работает как root, он может просто запускать приложения через sudo.

Если оценщик не запускается как root, тогда приложения, которые он вызывает (обычным способом ), могут быть установлены с битом SUID (, установленным идентификатором пользователя ), чтобы процесс выполнялся как пользователь, которому принадлежит двоичный файл, а не как пользователь процесса оценки.

7
27.01.2020, 20:25

Без сдерживания я бы посоветовал запускать приложение в chroot-окружении конкретным пользователем, как предложил Хауке Лагинг. cf человек chroot

Его легко настроить, сложность зависит от того, к какому ресурсу нужно приложению получить доступ

0
27.01.2020, 20:25

Теги

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