LINUX.ORG.RU
ФорумTalks

В systemd появилась замена su(1)

 , ,


2

6

Этим замечательным пулл-реквестом, Lennart Poettering, добавил замену su(1) в machinectl.

Открыть новый шелл для root на локальной машине:

$ machinectl shell

Для указания пользователя используется опция --uid=...

When using the shell command without arguments (thus invoking the executed shell or command on the local host) it is similar in many ways to a su(1) session, but unlike su completely isolates the new session from the originating session, so that it shares no process or session properties, and is in a clean and well-defined state. It will be tracked in a new utmp, login, audit, security and keyring session, and will not inherit any environment variables or resource limits, among other properties.

Несколько слов от Леннарта про su(1):

Well, there have been long discussions about this, but the problem is that what «su» is supposed to do is very unclear. On one hand it's supposed to open a new session and change a number of execution context parameters (uid, gid, env, ...), and on the other it's supposed to inherit a lot concepts from the originating session (tty, cgroup, audit, ...). Since this is so weakly defined it's a really weird mix&match of old and new paramters. To keep this somewhat managable we decided to only switch the absolute minimum over, and that excludes XDG_RUNTIME_DIR, specifically because XDG_RUNTIME_DIR is actually bound to the session/audit runtime and those we do not transition. Instead we simply unset it.

Long story short: «su» is really a broken concept. It will given you kind of a shell, and it's fine to use it for that, but it's not a full login, and shouldn't be mistaken for one.

THis has come up many times, but nothing really changed, hence closing this now. I understand this is confusing and unexpected, but well, that's UNIX...

man

★★★★

Последнее исправление: i_gnatenko_brain (всего исправлений: 6)

Миру нужен второй Леннарт, чтобы он брал у первого и переписывал заново.

anonymous_sama ★★★★★
()
Ответ на: комментарий от intelfx

Note that the systemd-run(1) may be used in place of the shell command, and allows more detailed, low-level configuration of the invoked unit. However, it is frequently more privileged than the shell command.

i_gnatenko_brain ★★★★
() автор топика
Ответ на: комментарий от sehellion

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

intelfx ★★★★★
()
Ответ на: комментарий от i_gnatenko_brain

А. Вижу теперь. Я недавно проснулся, на сами коммиты только сейчас глянул.

Круто, они добавили PAMName= в список свойств, устанавливаемых через API. Тогда ответ — да, через systemd-run можно (systemd-run -p CPUQuota=... -p PAMName=login -t /bin/bash -l ... или как-то так).

intelfx ★★★★★
()
Ответ на: комментарий от sudopacman

Им надо - они запилили, т.к. su их не устраивает.

invy ★★★★★
()
Ответ на: комментарий от Manhunt

Полновесным геростратиком он станет после пыток, да? :D

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

tailgunner ★★★★★
()

ох уж эти студенты... все бы им переделать на новый лад...

crypt ★★★★★
()

Очередная перепись истеричек, верещащих о том, как страшный-ужасный systemd отбирает привычные иснтрументы. Можно подумать, что su(1) у них в самом деле отбирают. Не говоря уже о том, что если бы Поттеринг, следуя пожеланиям истеричек, исправил бы su(1), то те же истерички тем же тоном верещали бы о приколачивании su(1) к systemd.

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

init=/bin/sh наше всё, пароль рута — решето.

x3al ★★★★★
()

Вендовненько.

Lavos ★★★★★
()

machinectl
--uid=

Расскажите этим идиотам почему все олдскульные юникс-программы имеют короткие названия.

Deleted
()
Ответ на: комментарий от intelfx

Я уже выражал свое мнение. Интересно, что точно такое же мнение высказывает неизвестный слешдотер, у которого сопоставимый опыт. Вот, если ты прочтешь полностью, то и про «формализацию» будет:

I've had a job now for about 10 years where a large fraction of the time I wear a software engineer's hat. Looking back now, I can point to a lot of design decisions in the software I work on that made me go "WTF?" when I first saw them as a young'un, but after having to contend with them for a good number of years, and thinking about how I would do them differently, I've come to the conclusion that the original WTF may be ugly and could use some polish, but the decisionmaking that produced it was fundamentally sound. 

The more I hear about LP and systemd, the more it screams out that this guy just hasn't worked with Unix and Linux long enough to understand what it's used for and why it's built the way it is. His pronouncements just sound to me like an echo of my younger, stupider, self (and I just turned 30), and I can't take any of his output seriously. I really hope a critical mass of people are of the same mind with me and this guy can be made to redirect his energies somewhere where it doesn't fuck it up for the rest of us.
crypt ★★★★★
()
Ответ на: комментарий от crypt

Ты можешь выражать его сколько хочешь, но никакие объёмы илитаризма и нытья на тему «вы все [L/2R]дарасы, а я д'Артаньян специалист UNIX» не прибавят твоему мнению обоснованности.

А эти пассажи, подобные процитированному, попросту смешны. Раз ты такой умный, так поделись божественной мудростью — пойди и напиши в рассылку, почему все вокруг неправы и как нужно делать.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 4)
Ответ на: комментарий от intelfx

Я догадывался, что мое мнение не будет считаться обоснованным, поэтому и привел чужое. Да вижу без пользы. Ну а сам я бы с интересом почитал хвалебные отзывы о systemd от опытных инженеров.

crypt ★★★★★
()
Ответ на: комментарий от x3al

все мы тут анонимусы в той или иной мере. не вижу, почему должен игнорировать то, что меня заинтересовало. не могу впрочем обещать тебе того же.

crypt ★★★★★
()
Ответ на: комментарий от crypt

Мнение — это ок, но вес мнения в опенсорс-сообществе невысок (talk is cheap © Торвальдс), тем более когда там 0 технических аргументов.

Можно было бы его выслушать, если бы это было мнение известного разработчика, например. Это не гарантирует истинности, но добавляет вес. А в таком виде — просто эмоции анонимуса, которые сложно воспринимать всерьёз.

x3al ★★★★★
()
Ответ на: комментарий от x3al

просто эмоции анонимуса

Это от возраста зависит. Со временем начинаешь уважительно относиться к чужому опыту.

0 технических аргументов

«сломать и сделать заново лучше всех» - это максимализм. Аргументы здесь бессильны. intelfx просто скажет, что такой use case не предполагался.

если бы это было мнение известного разработчика

А есть?

crypt ★★★★★
()
Ответ на: комментарий от Deleted

Расскажите этим идиотам почему все олдскульные юникс-программы имеют короткие названия.

а ты примеры там видел?

Example 5. 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 su(1)-like fashion.

grem ★★★★★
()

тру прогер вэй!

Если не можешь разобраться в чужой программе - напиши свою!

r0ck3r ★★★★★
()

В отличии от su, это поделие не имеет доступа к активным иксам. А при startx(и после Alt-Ctrl-F7) вообще завесило мне весь комп(похоже ввод остался в новых иксах, а картинка в старых стала).

Вот так я с ним поэкспериментировал.

Loki13 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.