Как выполнить команду, которая требует корневого разрешения без sudo?

Кроме причин памяти, уже упомянутых (64-разрядные приложения используют больше памяти) существует часто также включенный компонент совместимости - при выполнении большого количества старого или по крайней мере немного датированного программного обеспечения, просто более безопасно работать на 32-разрядной среде, где это было верно и протестировало на 10 + годы, вместо неподдерживаемой платформы это правильно никогда не тестировалось на. В то время как по существу слои эмуляции в архитектуре AMD64 и уровни OS должны представить этот устаревший аргумент, существует очень много очень плохого очень старого кода все еще в производстве там в широком мире - не общее выполнение актуальной установки ЛАМПЫ.

6
09.12.2014, 17:17
1 ответ

Traceroute не нужно работать как root ; Это просто нуждается в возможностях cap_net_admin . Таким образом, вы можете установить это как возможность файла для файла, а затем Traceroute всегда будет иметь эту возможность (для всех пользователей, хотя и), если ваше ядро ​​поддерживает возможности файлов и модуль безопасности Linux (SELinux, Apparmor) Блокировка его:

setcap CAP_NET_ADMIN+ep /usr/sbin/traceroute

В то время как работает Traceroute , вы можете увидеть его возможности с PSCAP . Это не влияет на UID / EUID процесса.

Я не знаю, как это сделать, но AFAIK можно также использовать Apparmor (и, вероятно, SELinux) для запуска процесса с определенными возможностями. Основная задача, конечно, для ограничения доступных возможностей.

5
27.01.2020, 20:28

Теги

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