Обойдите ~/.profile на удаленном входе в систему сервера Linux

Есть ли способ обойти или предотвратить выполнение ~/.profile при вхождении в удаленный сервер Linux с помощью или ssh или шпаклевки?

32
задан 08.07.2012, 01:26

4 ответа

Для удара:

$ ssh hostname "bash --noprofile"
30
ответ дан 07.12.2019, 09:10

Если Ваша целевая машина находится в оболочке удара:

user@host:/$ ssh hostname "bash --noprofile"

С другой стороны, если существует другой профиль, Вы хотите использовать

user@host:/$ ssh hostname "bash --noprofile; source ~/.other_profile"
4
ответ дан 07.12.2019, 09:10

Если Вы надеетесь отключать все сценарии входа в систему, можно использовать --noprofile флаг для отключения /etc/profile, ~/.profile, и т.д. и --norc отключить ~/.bashrc как так:

$ ssh 127.0.0.1 "bash --noprofile --norc"

Следует иметь в виду, что можно также запустить альтернативную оболочку, если Вы доступны. Я должен был использовать это после того, чтобы портить в chsh:

$ ssh 127.0.0.1 sh

Это, скорее всего, отбросит Вас к пустой оболочке (никакая подсказка), так дайте ее ls для проверки это работает.

14
ответ дан 07.12.2019, 09:10

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

Одна альтернатива должна была бы иметь сценарий профиля, обнаруживают само соединение SSH и ведут себя соответственно. Так как соединения SSH будут обычно устанавливать много переменных среды, это может легко быть проверено. Добавление чего-то как следующие строки к запуску Вашего профиля должно быть достаточным:

if [ "$SSH_CONNECTION" != "" ]; then
  echo Logging in with ssh
  return
else
  echo Logging in with something that is not ssh
fi

# rest of your profile goes here

return пропустит остальную часть сценария если $SSH_CONNECTION переменная среды установлена, который обычно создавался бы каждый раз, когда соединение SSH инициируется. Иначе профиль будет выполнен как нормальный.

Обратите внимание, что это только пропустит затронутый сценарий профиля. Все другие сценарии профиля (например: /etc/profile) был бы все еще обработан, если Вы не изменяете их так же.

1
ответ дан 07.12.2019, 09:10

Теги

Похожие вопросы