Run0 — это новая программа повышения привилегий для систем Linux на базе Systemd. Подобно sudo, он позволяет вам запускать команды от имени пользователя root и получать доступ к внутренним компонентам вашего компьютера. В этой статье мы сравниваем Run0 и Sudo, чтобы помочь вам выбрать подходящий для вас инструмент повышения привилегий.
Run0 и Sudo: параллельное сравнение
Категория | Run0 | Sudo | ||||
---|---|---|---|---|---|---|
Настраиваемость | Не поставляется с файлом конфигурации. Использует флаги командно Contents Run0 и Sudo: параллельное сравнение> | Поставляется с двумя файлами конфигурации и множеством флагов командной строки. | ||||
Простота использования | Простой и понятный в использовании для большинства задач | Может потребоваться некоторая настройка, прежде чем он сможет работать правильно | ||||
Безопасность | Не полагается на SUID и требует меньше кода | Опирается на SUID и имеет большую поверхность атаки из-за размера кода | ||||
Расширяемость | Не поддерживает сторонние плагины | Имеет API для разработки сторонних плагинов | Имеет API для разработки сторонних плагинов | Имеет API для разработки сторонних плагинов | Имеет API для разработки сторонних плагинов | td> |
Поддержка сети | Предназначен для работы на одном компьютере | Может работать с компьютерными сетями с использованием централизованного доступа политики | ||||
Наилучший вариант | Обычным пользователям, ищущим более простую альтернативу Sudo | Опытным пользователям, ищущим надежный вариант, который можно настроить |
Что такое Run0 и зачем его использовать
Выпущенный в версии 256 Systemd, Run0 представляет собой уникальный подход к повышению привилегий для Linux. Он использует Systemd-run для создания безопасной и изолированной среды для запуска программ с правами root.
Основным преимуществом Run0 является то, что он не использует setuid (SUID) для запуска команд root. Это делает программу невосприимчивой к атакам повышения привилегий, характерным для крупных программ с SUID.
![Терминал, отображающий свойства setuid двоичного файла sudo по сравнению с run0.](https://saintist.ru/wp-content/uploads/2024/07/run0-vs-sudo-linux-01-suid-program-comparison.png)
Еще одним преимуществом Run0 является то, что он переносит свой агент аутентификации в Polkit. Эта программа управляет настройками политики приложений в вашей системе. Он не только централизует аутентификацию на вашем компьютере, но также дает вам более точный контроль над тем, как программы и пользователи получают root-доступ.
Наконец, Run0 создает новый псевдо-TTY (PTY) каждый раз, когда вы вызываете привилегированную команду. Это означает, что программы не наследуют текущую среду оболочки, что позволяет легко изолировать некорректный процесс в вашей системе.
Кстати: посмотрите на разные способы открыть файл от имени root в Ubuntu.
Что такое Sudo и зачем его использовать
Sudo — одна из первых программ повышения привилегий для Linux и других UNIX-подобных операционных систем. Впервые разработанный в 1980-х годах, он использует встроенную систему пользователей и групп UNIX для управления привилегиями root для системных команд.
Ключевым преимуществом sudo является то, что это универсальное решение для повышения привилегий и разрешений. С его помощью вам нужно всего лишь настроить файл sudoers указать, кто может быть суперпользователем и какие программы они могут запускать от имени пользователя root. Это делает его привлекательным для системных администраторов, которым нужен упрощенный способ управления root-доступом.
![Терминал, показывающий содержимое файла sudoers.](https://saintist.ru/wp-content/uploads/2024/07/run0-vs-sudo-linux-03-sudoers-sample-config-file.png)
Еще одна причина использовать sudo заключается в том, что он может отслеживать и просмотреть историю системных команд , запущенные на вашем компьютере разными суперпользователями. Это полезно при устранении неполадок, поскольку позволяет указать точный момент возникновения проблемы в системе.
![Терминал, показывающий выходные данные команды sudoreplay со списком всех команд sudo, запущенных в системе.](https://saintist.ru/wp-content/uploads/2024/07/run0-vs-sudo-linux-04-sample-sudo-logs-user-command.png)
Наконец, sudo легко масштабировать на несколько хостов благодаря встроенной поддержке LDAP и Active Directory. По этой причине sudo также может стать отличным инструментом для администраторов, которые управляют несколькими компьютерами в командах и компаниях.
Run0 против Sudo: всестороннее сравнение
Хотя Run0 и Sudo являются отличными инструментами для повышения привилегий пользователей, обе программы использовали разные подходы для достижения этой цели. Ниже мы рассмотрим некоторые из этих различий, чтобы помочь вам определить, какой из них подходит вам больше.
Настраиваемость
В отличие от дру
Что такое Sudo и зачем его использовать
ьзует файлы конфигурации для изменения своего поведения по умолчанию. Вместо этого вы настраиваете его, используя несколько встроенных флагов при запуске на терминале. Это позволяет вам сосредоточиться на рабочем процессе, а не увязнуть в настройке файлов конфигурации.![Терминал, показывающий экран справки для run0.](https://saintist.ru/wp-content/uploads/2024/07/run0-vs-sudo-linux-05-run0-help-screen-output.jpg)
С другой стороны, sudo предоставляет множество опций в двух основных файлах конфигурации: «/etc/sudo.conf» и «/etc/sudoers». Оба работают рука об руку, чтобы контролировать работу sudo в вашей системе. Например, вы можете даже настроить sudo для запуска без пароля . Хотя это может сбить с толку нового пользователя, такой уровень гибкости и настройки позволяет вам создать свой собственный рабочий процесс sudo.
![Терминал, показывающий содержимое файла sudo.conf.](https://saintist.ru/wp-content/uploads/2024/07/run0-vs-sudo-linux-06-sudo-config-file-contents.jpg)
Победитель: Судо
Простота использования
Большинство дистрибутивов Linux сегодня поставляют Run0 и Sudo с разумными настройками по умолчанию, что упрощает их использование без какой-либо дополнительной настройки. Тем не менее, между этими двумя программами все еще есть несколько особенностей, которые могут стать препятствием для некоторых пользователей.
Основная особенность Run0 связана с тем, что для аутентификации он использует Polkit. В некоторых терминалах Run0 может отображать запрос пароля на другом дисплее. Это может стать проблемой, если вы используете терминальный мультиплексор, например Tmux, для управления несколькими сеансами оболочки.
![Снимок экрана, показывающий приглашение Polkit для запроса run0 на мультиплексном терминале.](https://saintist.ru/wp-content/uploads/2024/07/run0-vs-sudo-linux-07-polkit-sample-authentication-prompt-tmux.jpg)
Между тем, самая большая особенность Sudo заключается в том, что он не позволяет редактировать файл sudoers через обычный текстовый редактор. Вместо этого он просит вас использовать программу под названием Visudo, которая добавляет проверку целостности файла sudoers. Хотя это делает редактирование файла sudoers более безопасным, это может быть неоправданно сложно для обычного пользователя, который хочет управлять только root-правами.
![Терминал, показывающий экран справки для утилиты visudo.](https://saintist.ru/wp-content/uploads/2024/07/run0-vs-sudo-linux-08-visudo-help-screen.png)
Победитель: Run0
Размер исходного кода
Общий размер исходного кода программы является хорошим показателем того, насколько она сложна на данный момент. Это важно для программ повышения привилегий, поскольку сл
Run0 против Sudo: всестороннее сравнение
мостям безопасности.Одним из отличий Run0 от других приложений для повышения привилегий является то, что оно построено на основе Systemd-run. Это не только позволяет Run0 использовать возможности Systemd-run, но также означает, что сама программа не содержит много кода. В результате Run0 легче проверять на наличие потенциальных проблем безопасности в будущем.
Sudo — это масштабный программный проект, охватывающий множество файлов и языков программирования. Хотя эта сложность позволила sudo стать мощным приложением для повышения привилегий, это также означает, что у него есть огромная поверхность атаки для потенциальных эксплойтов.
![Терминал, показывающий все строки кода из репозитория sudo Github.](https://saintist.ru/wp-content/uploads/2024/07/run0-vs-sudo-linux-10-sudo-lines-of-code-statistic.png)
Победитель: Run0
Возраст исходного кода
Возраст конкретного программного проекта также является фактором, определяющим, насколько надежной будет программа повышения привилегий. Новые проекты часто содержат больше ошибок и проблем, а старые, как правило, более стабильны.
Run0 — относительно новая программа добавлено в Systemd в июне 2024 г. . В настоящее время вы можете получить приложение только в новейших дистрибутивах, таких как Arch Linux и Fedora Rawhide. Благодаря этому Run0 больше подходит для повседневной и некритичной работы.
Sudo — один из старейших программных проектов, разрабатываемый до сих пор. Sudo имеет более чем 30-летнюю историю разработки и представляет собой очень зрелую программу, способную справляться с различными рабочими нагрузками. Это делает его очень желательным для тех, кто ищет стабильную программу повышения привилегий, на которую они могут положиться.
Победитель: Судо
Run0 против Sudo: какое приложение победит
В конце концов, выбор правильной программы повышения привилегий зависит от того, чего вы пытаетесь достичь с помощью своей системы:
- Если вы ищете простое в использовании и простое приложе
Простота использования
trong>, Run0 — хороший выбор. Сочетание дизайна, не требующего настройки, и подхода к изоляции корневых процессов делает его идеальным для обычных пользователей, которым нужна простая альтернатива Sudo. - Если вам нужно настраиваемое и стабильное приложение для повышения привилегий, вы не ошибетесь, выбрав Sudo. Благодаря многолетней истории разработки и множеству функций Sudo очень легко адаптировать под свой рабочий процесс.
Выбор правильного приложения для повышения привилегий для вашего компьютера — это лишь первый шаг к пониманию того, как работает суперпользователь в Linux. Углубитесь во внутренности вашего компьютера и изучите чем Су отличается от Судо .
Изображение предоставлено: Габриэль Хейнцер через Unsplash . Все изменения и скриншоты Рамсеса Реда.