Рейтинг:1

Можете ли вы сменить пользователя терминала на любого пользователя, определенного в /etc/passwd?

флаг mx

Контекст

Это очень новый вопрос, но я не совсем понимаю Юникс пользователей еще.

Если я кот /etc/passwd есть разные пользователи:

я:х:1000:1000:я,,,:/дом/я:/бин/баш
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
sddm:x:127:134:Простой диспетчер отображения рабочего стола:/var/lib/sddm:/bin/false
mongodb:x:128:65534::/home/mongodb:/usr/sbin/nologin
sshd:x:129:65534::/run/sshd:/usr/sbin/nologin
tftp:x:130:138:демон tftp,,,:/srv/tftp:/usr/sbin/nologin
_rpc:x:131:65534::/run/rpcbind:/usr/sbin/nologin

большинство из них не являются пользователями входа в систему (поэтому мы бы сказали, что вы не можете войти в систему, если это не пользователь /bash), но если я попробую эту команду:

су - монгодб

он запрашивает у меня пароль. Проблема в том, что я не знаю пароль в этом случае.

Вопрос

  • но значит ли это, что я могу переключиться на этого пользователя в терминале и, возможно, запустить процесс, как это сделал бы systemd-service?
  • поэтому мы бы сказали, что вы не можете войти в систему, если это не пользователь /bash?
Рейтинг:3
флаг ru

короткий ответ:

  • да
  • да

Если вы являетесь суперпользователем (id = 0) или широко известны как root, вы не можете войти в него, если для оболочки установлено значение /usr/sbin/nologin или /usr/bin/false.

в соответствии с справочная страница Описание нологина:

   **ОПИСАНИЕ**
   nologin выводит сообщение о том, что учетная запись недоступна и
   выходит ненулевой. Он предназначен в качестве замены снарядного поля для
   отказать в доступе к учетной записи.

   Если файл /etc/nologin.txt существует, nologin отображает его
   содержимое пользователю вместо сообщения по умолчанию.

   Статус выхода, возвращаемый nologin, всегда равен 1.

но (всегда, если вы являетесь пользователем root или можете выполнять команды sudo), вы можете выполнить bash для одного пользователя, который не является пользователем nologign, чтобы выдать себя за него для устранения неполадок.

судо:

sudo -u mongodb /bin/bash 

корень:

su -s /bin/баш mongodb

Приведенная выше команда не выполняет вход в систему, а просто выполняет bash с разрешением пользователя, в данном случае от имени пользователя mongodb.

ПРИМЕЧАНИЕ: обычно эти пользователи не имеют пароля, это означает, что даже су - процесс попросит вас ввести пароль, который никогда не будет совпадать ни с чем, а также с пустым паролем.

AtomiX84 avatar
флаг ru
да @steeldriver, мой плохой! я исправляю это
Minsky avatar
флаг mx
не могу отблагодарить

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

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