su не меняет пользователя, но и не отвечает с ошибкой

56

Пока залогинен как rootхотелось бы suконкретному обычному пользователю. Я запускаю su usernameи сразу получаю подсказку обратно, все еще как root. Там не дано никакой ошибки. Мне известна старая проблема «пользователь, которому вы пытаетесь разрешить, не имеет разрешения для папки, в которой вы находитесь», но в этом сценарии это не так. Кроме того, нет отображаемой ошибки, которая всегда имеет место (насколько я знаю), когда возникает конкретная проблема с разрешениями.

Я пробовал su - usernameс тем же эффектом. Команда обработана, ошибок нет, и я сразу же получаю приглашение.

Что может быть причиной такого поведения? Как я могу устранить это?

Wesley
источник
8
Какая оболочка у пользователя? Это /bin/false?
Camh
4
Вы действительно должны использовать sudo -u username -s(или -i) BTW.
Mgorven
2
@camh facepalm Вот и все. Клянусь, я проверил /etc/passwdпрошлой ночью, и это было не так! =) Можете ли вы выразить это как ответ? Я приму это.
Уэсли

Ответы:

68

Проверьте, в какой оболочке находится пользователь /etc/passwd. Если это оболочка /bin/false(обычная оболочка для запрета входа в систему), то вы увидите поведение, которое вы описываете. В качестве альтернативы это может быть какая-то другая программа с немедленным завершением, которая дает тот же эффективный результат.

CAMH
источник
2
Это было это. Клянусь, я посмотрел первым! =)
Уэсли
25
И если вам нужно отладить что-то под пользователем, который имеет в /bin/falseкачестве оболочки, вы можете сделать это с su - user -s /bin/sh.
Marki555
6

Я бы предложил использовать strace для процесса su, чтобы увидеть, где происходит сбой процесса.

strace su donaldduck

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

Magellan
источник
1
Глупая уценка ....
Магеллан
4

Вы должны проверить оболочку /etc/passwd, и, не желая быть покровительственным, проверить вывод whoamiпосле запуска su.

Алекс Чемберлен
источник
1
Не уверен, почему это будет считаться покровительственным, потому что я бы точно так не поступил. Я имею в виду, что могу, если хочешь, но это не было бы моей первой склонностью. =) В любом случае, да, я забыл заявить, что сделал это, просто чтобы убедиться, что я тот, кем я себя считаю, и я все еще был тем, rootа не тем пользователем, на которого пытался переключиться.
Уэсли
0

Проверьте системные журналы: с помощью sudo следует регистрировать все действия. Так что, если есть проблема, она должна быть написана.

Дом
источник