Вообще, я воспринимал пользователей в группе wheel, как пользователей из под которых можно воспользоваться учеткой root.
В общем случае для повышения привилегий вообще. Для всего что выходит за рамки прав непривилегированного пользователя.
А если следовать логике "systemd-run -t /bin/bash", то не проще ли тогда, настроить по умолчанию sudo доступ, как в дебиане, а не с черного хода.
С sudo надо быть осторожным. У него как минимум timestamp не ноль. А в дебиан с timestamp ещё хуже.
Выкручивать через wheelonly? Непривилегированный пользователь с опцией --user не сможет запустить свою же оболочку.
Впрочем и su этого не умеет.
"systemd-run -t /bin/bash"
Даже для вызова оболочки другого пользователя,
[tester2@localhost ~]$ systemd-run --uid=502 -t /bin/bash
====AUTHENTICATING FOR org.freedesktop.systemd1.manage-units====
Для управления системными службами и юнитами, необходимо пройти аутентификацию.
Multiple identities can be used for authentication:
1. altlinux
2. altlinuxorig
3. tester
Choose identity to authenticate as (1-3): 3
Password:
==== AUTHENTICATION COMPLETE ====
Running as unit: run-u176.service
Press ^] three times within 1s to disconnect TTY.
[tester@localhost /]$
systemd-run использует правило polkit для управления системными службами:
# sed -n '81,141p' /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy | grep 'action id\|lang=\"ru\"'
<action id="org.freedesktop.systemd1.manage-units">
<description xml:lang="ru">Управление системными службами и юнитами</description>
<message xml:lang="ru">Для управления системными службами и юнитами, необходимо пройти аутентификацию.</message>
Теоретически надо было бы запретить запуск systemd-run для непривилегированных пользователей, но тогда пользователь не сможет запустить свою же оболочку
[tester2@localhost ~]$ systemd-run --user -t /bin/bash
Running as unit: run-u62.service
Press ^] three times within 1s to disconnect TTY.
[tester2@localhost ~]$
[tester2@localhost ~]$ exit
подобно тому, как это не умеет su
[tester2@localhost ~]$ su - tester2
bash: /bin/su: Отказано в доступе
[tester2@localhost ~]$ ls -l /bin/su
-rws--x--- 1 root wheel 26420 дек 14 2015 /bin/su
Хотя, а надо ли это?
Иначе мне придется всех пользователей рабочих станций, удалить из группы wheel.
"черный ход" - это откровенный руткит( su нельзя, а systemd-run можно).
В том-то и штука, что запуск systemd-run разрешён всем. В отличие от su, который только для группы wheel.
При su, для не wheel, отказ в доступе при любых других условиях.
# control | grep '^su \|^sudo '
su wheelonly (public wheel wheelonly restricted)
sudo wheelonly (public wheelonly restricted)