Системный Linux-менеджер systemd продолжает наращивать свою богатую функциональность. Очередным пополнением в наборе демонов, библиотек и утилит стала новая команда machinectl shell, которую добавили этим патчем. Она заменит устаревшую и «концептуально неправильную» su, с которой юниксоиды мучились более тридцати лет. Команда запускает привилегированные сессии, полностью изолированные от первоначальной сессии.

Зачем понадобилась альтернатива su? На этот вопрос отвечает сам автор Леннарт Поттеринг.

«Тема долго обсуждалась, но проблема в том, что предназначение команды su не совсем ясно. С одной стороны, она должна открыть новую сессию и изменить параметры контекста исполнения (uid, gid, env и др.). С другой стороны, должна получить в наследство многие концепты от первоначальной сессии (tty, cgroup, audit и др.). Поскольку всё смутно определяется, то выходит действительно странная смесь старых и новых параметров. Чтобы иметь хоть какой-то контроль, мы решили менять только абсолютный минимум.

Если вкратце, команда su концептуально неправильная. Она дает что-то наподобие шелла, и здесь всё отлично, но это не полный логин, и его нельзя путать с таковым».

Новая команда machinectl shell создает su-подобные сессии с разными параметрами.

Machinectl shell – только одно из многих нововведений в systemd за последнее время. Некоторые новшества весьма противоречивы, потому что пересматривают ключевые системные элементы Linux.

6 комментариев

  1. Al1en

    01.09.2015 at 11:52

    Хотите сказать что теперь для получения root прав вместо привычного «su -» надо будет вводить такую лабуду «machinectl shell» ?

  2. Ufanext

    01.09.2015 at 12:39

    одна из фишек создание сессии под любым пользователем (помимо root)

    +
    + Create a new shell session
    +
    + # machinectl shell —uid=lennart
    +
    + This creates a new shell session on the local host, for
    + the user ID lennart, in a su1-like
    + fashion.
    +

Оставить мнение