Putty: войдите в систему, выполните команду / измените переменную среды и не закрывайте сеанс

Я хотел бы настроить свой сеанс PuTTY таким образом, чтобы я мог войти в систему на удаленном хосте, и (а) начать bash (б) изменить переменную PS1 (быстрое содержимое) (в) продолжить работу в сеансе, как обычно.

пробовал:

  1. соединение -> данные -> переменные среды [не работает; сеанс выглядит так, как будто (b) не был выполнен]
    и
  2. соединение - > SSH - > удаленная команда: PS1= "некоторые вещи" [открывается окно с сессией на долю секунды, а потом она закрывается]

какие идеи? Я посмотрел на некоторые подобные вопросы на форуме, но не нашел ничего полезного.

в целом: я войти в Хост, где многие пользователи войти в качестве одного пользователя, и, таким образом, все они разделяют "настройки" одного пользователя. Я ищу способ заставить PuTTY временно изменить некоторые из этих настроек (т. е. чтобы они были ограничены временем сеанса, который я открываю с помощью PuTTY). Запустил личную версию .bashrc в рамках сессии. Надеюсь, это имеет смысл.

6
задан Simon Righley
01.12.2022 22:26 Количество просмотров материала 3199
Распечатать страницу

3 ответа

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

ssh user@foo command

что будет просто подключить, запустить command и выход. Вы можете иметь его оставаться открытым, давая ему command; bash но это не будет работать для установки переменных sice новая оболочка будет запущена после того, как переменная была установлена.

итак, не хватает корневой доступ к серверу, так что вы можете включить настройку переменных среды, единственный способ, который я могу придумать для вас, чтобы сделать это, чтобы изменить ~/.bashrc сервер и определить свой PS1 там. Добавьте эту строку ~/.bashrc:

PS1="some stuff"

теперь, каждый раз, когда вы входите в этот сервер, приглашение будет установлено для вас.


другой способ сделать это-использовать другой rcfile для вашего сеанса bash. Создайте новый файл с помощью строки:

source /etc/profile
source ~/.bashrc
PS1='some stuff'

Сохранить как, например, ~/.myps1, затем в настройках putty задайте команду для запуска на удаленном сервере:

bash --rcfile ~/.myps1

это откроет новый сеанс оболочки удаленного сервера и прочтет файл, над которым сначала читается .bashrc и PS1.

2
отвечен terdon 2022-12-03 06:14

попробуйте установить для удаленной команды значение export PS1='foo'; /usr/bin/bash... это должно породить сеанс bash после установки PS1.

0
отвечен BowlesCR 2022-12-03 08:31

для тех, кто по разным причинам не может модифицировать sshd config и/или имеет + 2000 серверов (и не имеет доступа к инструментам массовой настройки или не может / не хочет менять настройки для других пользователей), вот решение, которое я придумал:

enter image description here

в PuTTY загрузите нужный сеанс, перейдите в Connection > SSH. В разделе "Данные для отправки на сервер", в поле "удаленная команда" используйте:

env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...] bash

пример:

env -u PS1 PS1="[\u@\h]\$ " bash

I сначала удалите переменную, потому что иначе она не работала.

0
отвечен yahol 2022-12-03 10:48

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх