Рейтинг:7

Как запустить оболочку от имени пользователя, не имеющего доступа к оболочке?

флаг cn

Возможно, я использую неправильные термины, поэтому позвольте мне объяснить себя на примере. Подключение через SSH от имени пользователя «centos» и выполнение кот /etc/passwd на моей машине Centos7 я получаю:

centos:x:1000:1000:Облачный пользователь:/home/centos:/bin/bash
www:x:1001:1001::/home/www:/sbin/nologin

Теперь, если попытаться судо су www - Я получил: Эта учетная запись в настоящее время недоступна.

Что, согласно моим ограниченным знаниям, связано с нелогин часть. Что я хочу сделать, так это иметь возможность переключаться на пользователя www в сеансе SSH без (если возможно) предоставления пользователю www возможности прямого доступа к серверу через SSH, например, когда пользователь root пытается использовать SSH и получить ошибку сообщая, что вы должны войти в систему как сентос а затем измените его на root, если это необходимо.

Какие будут шаги для достижения желаемого поведения?

флаг id
Связано: https://unix.stackexchange.com/q/358740/147970
Peter Cordes avatar
флаг ke
«доступ к оболочке» подразумевает, что пользователь может войти в систему напрямую. Конечно, вы можете специально заблокировать их от SSH, но по-прежнему разрешать вход с паролем на консольный терминал, последовательный порт или другое место, где вы можете запустить демон getty. Так что это отвечает на заголовок вашего вопроса, а не на то, что вы на самом деле спрашиваете (о запуске оболочки от имени другого пользователя, который не может войти в систему напрямую).
флаг cn
Я признаю это, название вопроса плохо сформулировано по сравнению с тем, чего на самом деле пытается достичь спрашивающий в соответствии с текстом. Фиксация.
Рейтинг:33
флаг in

Просто запустите оболочку под пользователем.

sudo -u www баш
Рейтинг:17
флаг cn

Команда su использует оболочку вариант (), поэтому вы можете указать, какую оболочку использовать, что позволит вам стать пользователем.

sudo su www -s /bin/bash
Рейтинг:3
флаг cn

Синтаксис команды, который вы ищете, судо -у www -s

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

Рейтинг:-5
флаг us

Да, вам нужно изменить /etc/passwd - установить действующую оболочку для этого пользователя. Чтобы запускать команды от имени этого пользователя, может помочь sudo -u www.

флаг cn
Это 1) не то, о чем они спрашивали и 2) даже если бы это было *ужасным советом*, чтобы дать тому, кто явно не привык к unix. **НЕ** редактируйте `passwd` вручную, если есть *какая-либо* доступная альтернатива.
deman_killer avatar
флаг us
Это правильный ответ для заголовка и диаг. Но подробный вопрос в другом. Почему бы не снизить рейтинг вопроса?
deman_killer avatar
флаг us
Это ужасный совет для доступа к сервисным учетным записям с помощью безопасной оболочки.
флаг cn
Если вы ответили на заголовок, не прочитав вопрос, то вы заслуживаете еще больше -1.
deman_killer avatar
флаг us
Прошу Вас?
флаг in
Кроме того: он отвечает только за то, как добавить оболочку. Вы могли бы хотя бы добавить, как предотвратить доступ по SSH.

Ответить или комментировать

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