Я не знаю ни о какой подобной программе.
Я думаю в целом, это испорчено и не дает Вам больше безопасности, чем разрешение доверительного доступа отдельного пользователя к ограниченным командам.
Лично, я не дал бы никому, кого я не знал лично sudo доступа, даже к подмножеству команд, потому что слишком легко пропустить что-то и предоставить им доступ, который Вы не ожидаете.
Доверяйте им или не доверяйте им, создавание слоев не совсем доверчивых их не помогает.
Да, VSZ является виртуальной памятью. Относительно RLIMIT_AS, где Вы находили абзац заключенным в кавычки выше? С тех пор setrlimit (2) системный вызов Linux, я не вижу, как он мог возможно контролировать malloc (3), библиотечная функция. Вместо этого это может только работать с кирпичом (2), sbrk (2), и mmap (2) - это также, что предлагает его страница справочника (проверенный Научного Linux). Однако общий объем памяти, которую требуют через эти функции, является виртуальной памятью, таким образом, RLIMIT_AS действительно ограничивает виртуальную память. (Это, снова, в соответствии с setrlimit (2) страница справочника.)
К сожалению, Вы не можете ограничить RSS в соответствии с Linux (это было бы ulimit -m
). Можно попробовать ulimit -d
(RLIMIT_DATA), но это проигнорирует mmap (2), обычно используемый для больших выделений. Другая возможность состояла бы в том, чтобы ограничить виртуальную память, но с такими значительными различиями между RSS и VSZ, это могло бы быть трудно.
Многие процессы делят часть своей памяти с другими процессами, например, libc используется почти каждым процессом, но только один раз маппируется в память, но это считается с использованием виртуальной памяти каждым процессом. Ограничение использования памяти, которое используется только определённым процессом (в основном RSS), может быть сделано с помощью cgroups. Смотрите ответы на Как ограничить общие ресурсы (память) процесса и его дочерних процессов для получения информации о том, как это сделать. Это ограничит общую память процесса и его дочерних процессов.
setrlimit
страница справочникаIEEE/The Open Group 2003 GETRLIMIT(3P)
Каким образомps
может показать мне RSS, но ядро не может осуществить предел на него? – Dragomir Ivanov 22.02.2012, 12:26ulimit -d
затем. Приложение записано мной, и я не использовалmmap()
. – Dragomir Ivanov 22.02.2012, 13:16