xrdp изменяющаяся переменная окружения PATH

Все,

Я использую xrdp для соединения с полем Centos 7. Я замечаю, что моя переменная окружения PATH отличается в зависимости от того, не можем ли я RDP в или SSH и я ни за что в жизни выяснить, где это происходит.

Я проверил/etc/xrdp/startwm.sh, но весь связанный с путем код уже комментируется. Мой/etc/profile является довольно стандартным и нет ничего в/etc/profile.d, который сделал бы это. Кроме того, если бы это было где-нибудь в/etc/profile [.d] затем, то это было бы применено даже во время логинов SSH.

Я видел упомянутый несколько раз в различных местах в Интернете без действительного решения или объяснения.

Кто-либо имеет объяснение и может указать на меня в правильном направлении?

Вид сведения с ума меня не знающий, где это происходит!

Править:

Я должен был быть более ясным. Это - сценарий RDP, который я испытываю затруднения при выяснении. Я могу в значительной степени объяснить все связанные с путем интриги, которые я вижу во время сессии SSH (или даже во время сессии VNC, главным образом так или иначе). Если я просматриваю/etc/profile* настройки, а также мой собственный ~/.bash_profile, вещи имеют смысл во время сессии SSH. Но когда я RDP в, вещи становятся странными.

В дополнение к/etc/xrdp/startwm.sh я проверил/etc/security/pam_env.conf, в котором все было уже прокомментировано.

РЕДАКТИРОВАНИЕ 2:

На сессии входа в систему SSH/normal мой путь похож:

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

На сессии RDP мой ПУТЬ похож:

/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin

Я вижу в/etc/profile, где/usr/local/sbin и/usr/sbin добавляются (или предварительно ожидаются если корень).

В случае RDP существует пара дополнений, а также перестраиваемых вещей. Например, / мусорное ведро внезапно присутствует, а также/usr/XllR6/bin. Кроме того,/usr/bin теперь прежде/usr/local/bin. Главным образом эта последняя часть я не хочу.

Я знаю, что мог согласовать его в своем собственном ~/.bash_profile, но я не вижу, почему я должен иметь к. Не смотрите, почему путь смешивается с до того градуса во-первых.

Спасибо, Justin

0
задан 31 July 2015 в 15:14
2 ответа

У меня была эта проблема до 6.6. Не знаю, установлено ли то же самое под 7.

/etc/profile в общесистемные переменные окружения и добавлены ли пути "sbin" для пользователя "root". /etc/xrdp/startwm.sh загружает этот файл в функцию pre_start(), которая выполняется внизу файла.

Но сверху /etc/xrdp/startwm. sh выглядит следующим образом:

# if xinitrc exists use it instead, it should load user prefferences
# including desktop environment specified in /etc/sysconfig/desktop
if [ -f /etc/X11/xinit/xinitrc ]
then
    . /etc/X11/xinit/xinitrc
    exit 0
fi 

Итак, если /etc/X11/xinit/xinitrc существует, то /etc/xrdp/startwm.sh выполняет его и завершает, таким образом, ни одна из оставшихся установок не выполняется. /etc/X11/xinit/xinitrc не загружает /etc/профиль, по крайней мере мой не загрузил.

Я прокомментировал проверку для xinitrc в startwm.sh:

# if xinitrc exists use it instead, it should load user prefferences
# including desktop environment specified in /etc/sysconfig/desktop
#if [ -f /etc/X11/xinit/xinitrc ]
#then
#    . /etc/X11/xinit/xinitrc
#    exit 0
#fi 

Это решило проблему для меня и я не заметил разницы в функции XRDP.

.
0
ответ дан 5 December 2019 в 12:30

Ich bin mir nicht sicher, ob dies Ihr Problem lösen wird, da es wirkt sich auf Ubuntu mit XRDP und XFCE4 aus. Es besteht jedoch die Möglichkeit, dass dies der Fall ist.

Ich hatte ein ähnliches Problem: Die Umgebungsvariable PATH war anders, als ich mich über SSH und XRDP am Computer anmeldete. Konkret wurde beim Öffnen eines Terminalfensters in XRDP ( xterm ) die Variable PATH nicht mit lokalen Benutzerpfaden festgelegt ( ~ / bin , ~ / .local / bin usw.).

Diese Pfade waren jedoch vorhanden, als ich mich über SSH anmeldete.

Das Problem war nicht in XRDP, sondern , wie die Bash-Sitzung mit XTerm und erstellt wird mit SSH . Da SSH eine Anmeldesitzung erstellt, enthielten die geladenen Dateien / etc / environment und ~ / .profile . In letzterem waren die von mir benötigten Pfade enthalten.

Dies war bei XTerm nicht der Fall. Es erstellt eine Bash-Sitzung ohne Anmeldung und lädt daher /etc/bash.bashrc und ~ / .bashrc .

So wie ich konnte Es wurde lediglich die PATH-Initialisierungszeile von ~ / .profile in eine dieser beiden Dateien eingefügt. Da dies alle Benutzer der Maschine betreffen sollte, habe ich es in /etc/bash.bashrc aufgenommen:

echo PATH="$HOME/bin:$HOME/.local/bin:$PATH" >> /etc/bash.bashrc

Weitere Informationen zur Funktionsweise von man bash

0
ответ дан 5 December 2019 в 12:30

Теги

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