LINUX.ORG.RU
ФорумAdmin

rtfm перечитать bashrc без ребута для пользователя без шела


0

1

Ммм, чет не дочитал... Квест: перечитать bashrc без ребута для пользователя с /sbin/nologin не ребутая сервак (нужно заэкспортить для юзера парочку переменных). Дьявол в мелочах. Пока надумал:
1. Изменить пользователю шел, залогиниться, поменять bashrc, затем export variableN, сменить шел назад.
2. Изменить bashrc из под другого пользователя, затем sudo su - user -c «export variableN»
Знаю, что можно какнить поизящней, кароч как перечитать .bashrc?


. ~/.bashrc

Ты не можешь сделать ничего для уже запущенных процессов/шеллов кроме как . ~/.bashrc (ну, может быть, в /proc залезть руками).

Алсо, КАК они прочитаются /sbin/nologin?

x3al ★★★★★
()
Ответ на: комментарий от Fuelen

source — это башизм, портабельней будет

. ~/.bashrc

beastie ★★★★★
()
Ответ на: комментарий от x3al

/sbin/nologin - действительно, возможно есть глобальные переменные?
но 2 коммента . ~/.bashrc намекают. Хм, подниму виртуалку, затесчу

Spuddy
() автор топика
Ответ на: комментарий от Spuddy

Глобальных переменных нет. Впрочем, стартовые скрипты некоторых демонов содержат экспорт переменных и/или написаны на шелле, выполняющем хоть какую-то инициализацию. С момента логина весь enviroment чистится.

Сменить enviroment на ходу нельзя, кстати. Разве что шаманство с /proc, но не уверен, что так можно. В текущем шелле и только в нём — вышеупомянутое . ~/.bashrc, работает только на запущенные после этого команды и только на этот шелл, естественно, после ребута не сохраняется.

nologin обычно делают когда все демоны уже знают о своём enviroment из конфигов (стартовые скрипты иногда умеют конфиги, иногда их можно редактировать).

x3al ★★★★★
()
Ответ на: комментарий от x3al

Суть понял, я вижу, что часть переменных подгружена, но те которые мне нужны, как раз нет. Видимо они были подгружены до. Смысл таков: на заббикс сервере есть куча айтемов, которые чекают состояние mysql cluster'a. Мускл установлен из сырцов в /opt/bla/bla. Чекать приходится систем раном и писать полный путь /opt/bla/bla. Когда «товарищи» вдруг захотят заапдейтить мускл, не хочется менять наццать айтемов, а лишь переменную окружения(которая ессесно поменяет и пасс/ту/файл). У заббикса юзер со /sbin/nologin. через заббикс_гет посылаю «set» и вижу кучу чуть ли не рутовых переменных.
Чудеса в решете. Кароч нужен флоу разыскать, как все переменные назначаются поэтапно. Скажем так «откуда ногти растут»

Spuddy
() автор топика
Ответ на: комментарий от Spuddy

Читать скрипт запуска (который в /etc/rc*), читать man шелла, на котором он написан (скорее всего bash) на предмет INVOCATION, увидишь все конфиги, которые читаются при неинтерактивном запуске.

x3al ★★★★★
()

Накой черт такие извращения? Просто внутри шелла запусти bash -l и получишь шелл с перечинанными логин-файлами. Затем просто работай.

unanimous ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.