Блог / Статьи

Полезная информация для вашего хостинга

Команда run0: альтернатива sudo – Что мы знаем на сегодня

Команда run0: альтернатива sudo

Проект systemd продолжает революционизировать экосистему Linux своим последним дополнением: командой run0.

Недавно анонсированная ведущим разработчиком systemd Леннартом Пёттерингом, команда run0 обещает изменить подход к выполнению административных задач, предлагая новую утилиту, подобную sudo.

В отличие от своих предшественников, run0 вводит уникальные функции, которые отличают её, потенциально изменяя способ взаимодействия пользователей с привилегированными командами.

Ближе к run0


Команда run0 является новым дополнением к инструментам systemd, хотя она основана на уже существующем инструменте systemd-run.

Ключевое отличие заключается в том, как работает run0: когда её вызывают через символическую ссылку под именем “run0”, она ведет себя как клон sudo, предлагая упрощенный способ выполнения команд с повышенными привилегиями.

Однако run0 отличается от традиционного использования sudo несколькими важными аспектами.

Без необходимости SUID


Одна из самых заметных особенностей run0 - её подход к безопасности. В отличие от sudo, run0 не требует SUID.

Вместо этого она работает напрямую с менеджером служб для вызова команды или оболочки под нужным UID пользователя. Этот инновационный дизайн позволяет избежать потенциальных уязвимостей безопасности, связанных с SUID бинарниками.

Команда выделяет новый PTY (псевдотерминал) для каждой сессии, передавая данные между исходным TTY и новым PTY.

Изолированный контекст выполнения
Еще одно ключевое отличие между run0 и sudo заключается в том, как первая выполняет команды.

С run0 команды вызываются в новом форкнутом контексте выполнения напрямую из PID 1. Этот подход гарантирует, что команды не наследуют никакого контекста от клиента, за исключением явного списка разрешенных, например, передачи переменной $TERM.

run02

Визуальные индикаторы


Чтобы сделать использование run0 более интуитивным, команда предоставляет визуальный сигнал при работе с повышенными привилегиями.

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

Сравнение с ssh и sudo


Пёттеринг отметил, что в некоторых аспектах поведение run0 ближе к ssh, чем к sudo. Это сравнение подчеркивает акцент run0 на изоляцию и безопасность.

В то время как sudo позволяет напрямую выполнять команды с привилегиями root, выделение PTY и изолированный контекст run0 создают более безопасную среду выполнения, напоминая подход ssh к выполнению удаленных команд.

Будущие перспективы


По мере того как systemd продолжает развиваться, run0 готова сыграть ключевую роль в администрировании систем Linux. Её инновационный дизайн и акцент на безопасность делают её интересным дополнением к экосистеме systemd. С такими функциями, как изолированное выполнение, визуальные индикаторы и безопасный дизайн на основе PTY, run0 предлагает свежий взгляд на выполнение привилегированных задач.

Для тех, кто заинтересован в её опробовании, run0 будет доступна в версии systemd 256, а дополнительные комментарии от Пёттеринга можно найти на Mastodon.social.

Особенности и установка

Основные особенности run0:

1. Отсутствие SUID:
- В отличие от sudo, run0 не требует SUID (Set User ID), что значительно повышает безопасность, поскольку устраняются уязвимости, связанные с SUID бинарниками.
- Вместо этого run0 работает напрямую с менеджером служб systemd, чтобы запустить команду или оболочку под нужным UID пользователя.

2. Изолированный контекст выполнения:
- Команды запускаются в новом изолированном контексте выполнения, что предотвращает наследование контекста от вызывающего процесса. Это достигается путем форка нового процесса непосредственно от PID 1.
- Такая изоляция позволяет более точно контролировать передаваемые переменные среды и другие параметры, что способствует повышению безопасности.

3. Новый PTY для каждой сессии:
- Для каждой сессии run0 выделяет новый псевдотерминал (PTY), что обеспечивает изолированную среду выполнения команд.
- Данные передаются между исходным терминалом и новым PTY, что гарантирует целостность и безопасность данных.

4. Визуальные индикаторы:
- Чтобы пользователи могли легко распознавать выполнение команд с повышенными привилегиями, run0 по умолчанию окрашивает фон терминала в красноватый оттенок.
- Этот визуальный сигнал служит напоминанием о работе с привилегированными командами и добавляет дополнительный уровень ясности.

5. Сходство с ssh:
- По своей концепции run0 ближе к ssh, чем к sudo, поскольку акцент делает на изоляцию выполнения и безопасность.
- run0 выделяет новый PTY и контекст выполнения, что напоминает подход ssh к удаленному выполнению команд.

run01

Как использовать run0 в администрировании систем Linux?

1. Установка run0:
- run0 будет доступна в версии systemd 256. Для установки следует обновить systemd до этой версии через пакетный менеджер вашей системы.

2. Использование run0 для выполнения команд с привилегиями:
- Для выполнения команды с привилегиями через run0, используйте синтаксис, аналогичный sudo:

```bash
run0 <команда>
```

 


- Например, чтобы выполнить команду `apt update` с привилегиями, используйте: 

```bash
run0 apt update
```

 

3. Понимание изолированного контекста:
- Поскольку run0 запускает команды в новом контексте выполнения, необходимо учитывать, что не все переменные среды и параметры будут переданы автоматически. Например, переменная $TERM может быть явно разрешена для передачи.
- Это позволяет более строго контролировать среду выполнения команд, повышая безопасность.

4. Использование визуальных индикаторов:
- При выполнении команды с run0 обратите внимание на красноватый оттенок фона терминала, который сигнализирует о повышенных привилегиях.
- Этот индикатор помогает избежать случайного выполнения привилегированных команд и повышает осведомленность пользователя.

Заключение

Команда run0 представляет собой значительный шаг вперед в администрировании систем Linux, предлагая более безопасную и интуитивно понятную альтернативу традиционному sudo. С её помощью администраторы могут выполнять привилегированные задачи в изолированном и контролируемом контексте, что способствует повышению общей безопасности системы.

Команда run0 представляет собой значительный шаг вперед в администрировании систем Linux, предлагая более безопасную и интуитивно понятную альтернативу традиционному sudo. Это особенно актуально для пользователей VPS (виртуальных частных серверов), где безопасность и контроль над привилегированными командами имеют первостепенное значение. Использование run0 на VPS-хостинге позволяет администраторам выполнять важные системные задачи в изолированной среде, минимизируя риски, связанные с уязвимостями SUID и обеспечивая надежное управление привилегиями. Таким образом, внедрение run0 может значительно повысить уровень безопасности и управляемости VPS, что делает этот инструмент ценным дополнением для любого современного хостинг-провайдера.