Для того же пользователя UNIX или пользователя Linux, различных наборов переменных среды

Я еще не абсолютно уверен относительно этого, поэтому возьмите его с мелкой частицей соли и большего количества исследования.

Это запускается с подсистемы замены в горячем режиме ядра. После того, как устройство является установкой, это любой вызовы независимо от того, что программа пространства пользователя является установкой для обработки событий замены в горячем режиме (если Вы были установлены echo hotplug_handler > /proc/sys/kernel/hotplug) или отправляет пакет данных по kobject_uevent netlink сокет. Когда ядро запускает обработчик замен в горячем режиме, оно настраивает некоторые переменные среды. Когда ядро отправляет datapacket, оно включает key=value пар. Если Вы хотите, можно установить сценарий, который просто регистрирует среду и настраивает ее как обработчик (не в производственной системе, конечно - тестовая установка).

Обычно, udev является установкой как обработчиком, и это будет иметь несколько установок правил о том, как обработать события. Оттуда, это может запустить другие программы, которые делают другие вещи (как проблема dbus сообщения). Эти правила udev очень зависят от конкретного распределения интереса.

Существует большая информация в этом потоке, где кто-то пытается записать, что некоторая документация - отмечает, что первое сообщение не точно; продолжайте читать.

5
05.11.2011, 06:39
3 ответа

Можно сделать .tcshrc проверьте специальную переменную среды (как subuser), и условно source .tcshrc_cust. Когда Вы входите в систему, работаете subuser=nozimica tcsh. Это получит это enironment переменная и выполнит Ваш пользовательский емкостно-резистивный сценарий. Кроме того, энергия :sh команда будет работать. Можно даже заставить его полагать и source .tcshrc_$subuser; тем путем все могли сделать это.

Можно пропустить часть, куда Вы работаете subuser=nozimica tcsh когда Вы входите в систему при наличии ssh, выполняет его для Вас. Если Вы устанавливаете ssh ключевую аутентификацию, то в ~/.ssh/authorized_keys на сервере можно снабдить префиксом ключ command="subuser=nozimica tcsh", и ssh выполнит ту команду для Вас.

4
27.01.2020, 20:38
  • 1
    Ваш ответ был чрезвычайно полезен.Большое спасибо! –  nozimica 19.10.2011, 23:12

Можно отправить вдоль переменных среды от локальной машины с помощью SSH.

Например, помещенный export FOO_USER="$USER"tcshверсия .bash_profile) или FOO_USER=joe ssh remote-host (на командной строке) на Вашей локальной машине. Отредактируйте Ваш ~/.ssh/config включать это: SendEnv LANG LC_* FOO_USER.

Затем на удаленном сервере можно проверить на ту переменную в .bash_profile (или что имеет Вас в tcsh), и выполните соответствующие меры:

if [ "$FOO_USER" = 'joe' ]; then
    export PS1='--[ Joe rules ]-- \u@\h \w \$ ';
    source tcsh.joe;
elif [ "$FOO_USER" = 'jane' ]; then
    alias ll='ls -Al';
fi

По умолчанию сервер SSH только принимает LANG и LC_*, таким образом, если Вы не можете отредактировать /etc/ssh/sshd_config на сервере для добавления AccceptEnv LANG LC_* FOO_USER, Вы могли бездельничать он путем злоупотребления LC_* переменные, например. LC_FOO_USER=joe. Обновите Ваш .bash_profiles (или скорее соответствующее локальное и удаленное tcsh файлы) соответственно.

2
27.01.2020, 20:38
  • 1
    Это может походить на большее количество работы, чем authorized_keys подход, и поэтому это.:-) Однако это также работает на неключевую аутентификацию или даже когда — удушье — закрытый ключ является общим для несколько пользователей. –  janmoesen 19.10.2011, 23:26

Моя команда и я сталкивались с подобной проблемой с общей учетной записью. Мы предложили в основном то же решение, оптимизировав его крошечный бит.

Вот то, что мы делаем. (Мы используем ksh, Я не знаю много о tcsh но я предполагаю, что это довольно подобно).

  • Полоса вниз .tcshrc к абсолютному минимуму, так, чтобы это больше было едва применимо.

  • Вынудите каждого пользователя использовать a .tcshrc_cust

И в оригинале tcshrc добавьте что-то как этот:

 alias u1='source .tcshrc_user1'
 alias u2='source .tcshrc_user2'
 alias u3='source .tcshrc_user3'

Идея состоит в том, что более удобно ввести всего 2 буквы, чем целая команда. Также, если целая команда делает его, это становится более принятым и легче поддержать.

Я не говорю, что это - идеальное решение, и я искал то же самое как Вы некоторое время теперь, лучше, чтобы я мог придумать. Давайте надеяться, что у кого-то еще есть лучшая идея :)

1
27.01.2020, 20:38
  • 1
    Действительно я уже следую той стратегии, таким образом, у меня есть свой собственный псевдоним, "получающий" мое пользовательское .tcshrc. Спасибо так или иначе! :D –  nozimica 19.10.2011, 23:25

Теги

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