URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 4761
[ Назад ]

Исходное сообщение
"Как в скрипте определить, что сессия SSH или GUI не локальная?"

Отправлено And , 03-Авг-21 08:58 
Как проще в скрипте определять, что скрипт запустили в локальной сессии? Определить удалённый вход или запущено локально.

Две ситуации:
- главное - сессия в терминале через SSH,
- второстепенное - сессия с VNC или др. сервером.

Запускаю скрипт, в скрипте хочу определять локальная ли сессия или шелл запустился в окружении удалённой системы.

По каким переменным, признакам (по наличию или отсутствию) и т.п. лучше определять? Как лучше сделать?


Содержание

Сообщения в этом обсуждении
"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено Аноним , 03-Авг-21 13:12 
> Как проще в скрипте определять, что скрипт запустили в локальной сессии? Определить
> удалённый вход или запущено локально.
> Две ситуации:
>  - главное - сессия в терминале через SSH,
>  - второстепенное - сессия с VNC или др. сервером.
> Запускаю скрипт, в скрипте хочу определять локальная ли сессия или шелл запустился
> в окружении удалённой системы.
> По каким переменным, признакам (по наличию или отсутствию) и т.п. лучше определять?
> Как лучше сделать?

lsof


"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено And , 03-Авг-21 15:27 
В том и вопрос - какие конкретно признаки - переменные, файлы и т.п.

"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено Аноним , 03-Авг-21 16:44 
> В том и вопрос - какие конкретно признаки - переменные, файлы и
> т.п.

1. grep socket
2.1  grep localhost in numeric view for IPv4 & IPv6 => detect for local mode
2.2. grep all non-local connection => detect non-local mode


"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено Аноним , 03-Авг-21 16:45 
> В том и вопрос - какие конкретно признаки - переменные, файлы и
> т.п.

man lsof


"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено Ann None , 03-Авг-21 14:49 
> Как проще в скрипте определять, что скрипт запустили в локальной сессии? Определить
> удалённый вход или запущено локально.
> Две ситуации:
>  - главное - сессия в терминале через SSH,
>  - второстепенное - сессия с VNC или др. сервером.
> Запускаю скрипт, в скрипте хочу определять локальная ли сессия или шелл запустился
> в окружении удалённой системы.
> По каким переменным, признакам (по наличию или отсутствию) и т.п. лучше определять?
> Как лучше сделать?

who am i


"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено Аноним , 03-Авг-21 15:09 
cat /etc/hostname?

"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено And , 03-Авг-21 15:26 
> cat /etc/hostname?

Это имя хоста, на котором работает.

Откуда взять в скрипте имя хоста, с которого запустили SSH, например, сессию?

По каким признакам в скрипте, программно можно понять сессия локальная или удалённая?


"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено Аноним , 04-Авг-21 09:59 
> Откуда взять в скрипте имя хоста, с которого запустили SSH, например, сессию?

Через env передайте.
Тут никак иначе - только передавать с хоста, который делает подключение. Представьте, что удаленно по ссш дозвонились, а потом еще раз к локалхосту. Или из баша, который запущен после подключения ссш, запустили скрин и в нем новый баш, с очищенным окружением.


"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено sys , 03-Авг-21 18:51 
> Две ситуации:
>  - главное - сессия в терминале через SSH,
>  - второстепенное - сессия с VNC или др. сервером.

если везде bash
set |grep SSH_CLIENT


"Как в скрипте определить, что сессия SSH или GUI не локальная?"
Отправлено universite , 05-Авг-21 11:41 
>> Две ситуации:
>>  - главное - сессия в терминале через SSH,
>>  - второстепенное - сессия с VNC или др. сервером.
> если везде bash
> set |grep SSH_CLIENT

Лучше более универсальное, вне зависимости от шелла:
env |grep SSH_CLIENT