Получить имя пользователя Windows из оболочки Bash Unix? - PullRequest
1 голос
/ 17 апреля 2019

Есть ли способ получить имя пользователя Windows, который подключается к определенной среде Unix, используя всегда одни и те же учетные данные сервера, непосредственно в Bash?

Некоторый фон

Существует множество пользователей N, которые могут подключаться к M различным средам Unix, всегда используя одинаковые учетные данные в Unix: someusername , без пароля.В основном,

  • Пользователь Windows "Matteo" имеет открытый сеанс Windows на компьютере "PMatteo.fr.company.com".
  • Этот пользователь открывает сеанс SSH на компьютере Linux linuxMachine, используя Putty.
  • Вход в систему всегда выполняется с одинаковыми «поддельными» учетными данными: someusername, без пароля, и пользователь входит в систему.

Внутри среды Unix, следовательно, используется bashКоманда, я хотел бы получить имя пользователя Windows "Matteo".

Мои исследования до сих пор

Следующая команда:

echo $(who am i) | cut -d "(" -f2 | cut -d ")" -f1

показывает мне два вида выходов, в зависимости от машины, к которой я подключен:

  • Иногда, он показывает непосредственно имя машины PMatteo.fr.company.com
  • В некоторых других случаях он показывает только IP-адрес (например, 45.32.4.19), но это нормально, потому что я могу найтиимя машины с помощью команды nslookup 45.32.4.19.

Мой вопрос

Можно ли с помощью сценария Bash напрямую перейти к имени пользователя Windows?Я могу (довольно) легко найти имя машины, поэтому я считаю, что имя пользователя Windows может храниться где-то, я просто не знаю, как, и я не могу найти его где-нибудь в Интернете.У кого-нибудь есть подсказка?Моя версия bash 4.1.2 (1).

Цель

Из имени пользователя Windows я всегда могу восстановить почтовый адрес пользователя.Иногда пользователь запускает команду, которая может повлиять на других пользователей, но, поскольку они подключаются (на языке Unix) всегда с одним и тем же именем пользователя, никто не знает, кто на самом деле выполняет команду.Было бы неплохо иметь возможность связаться с ними по электронной почте на случай, если кто-то еще попросит прекратить то, что они делают.

Ответы [ 2 ]

2 голосов
/ 17 апреля 2019

Простой ответ - нет.

Вы не передаете эту информацию на сервер Unix / Linux, потому что вы всегда входите с учетными данными someuser.

Поскольку вы можете получить имя пользователя из имени хоста вашего ПК, вы можете получить имя пользователя Windows, но в этом есть ряд недостатков:

  • кто-то еще кто (ab) использует ПК, который сопоставляется с владельцем этого ПК, даже если они входят в систему со своей собственной учетной записью.
  • , если кто-то подключает мошеннический ПК к сети, имя пользователя не может быть получено из его имени хоста. '

Что вы можете попробовать, так это получить доступ к клиенту Windows из окна Linux.Но для этого необходимо, чтобы все клиенты были доступны из Linux (rdp, telnet, powers hell, ssh-сервер или что-то в этом роде и, конечно, авторизация в Windows).Затем вы можете посмотреть, кто вошел в систему в то время (и надеяться, что это всего лишь один пользователь).

1 голос
/ 17 апреля 2019

В Putty, перейдите к Соединение-> SSH-> Удаленная команда и добавьте это,

env WINUSER=yourname bash

затем подключите. Это должно установить переменную среды WINUSER в среде удаленной оболочки.

Это предполагает доверенную среду, поскольку любой может подделать настройку при входе в систему.

(Это может быть увеличено до https://superuser.com)

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