Назад | Перейти на главную страницу

Как экспортировать файл в bash другого пользователя при входе в систему через SSH (используя Putty) в RHEL?

Я использую RHEL 7.3, однако процедура может быть аналогичной в других системах Linux.

Я вошел в систему как root. У меня есть файл под названием openrc который полон строк вроде export OS_IDENTITY_API_VERSION=3. Я бы хотел переместить этот файл куда-нибудь, чтобы он автоматически загружался, когда другой пользователь входит в систему по SSH. Прочитав связанные темы, я попытался добавить это, используя это как пользователь root, но это, похоже, добавляет эти значения только для пользователя root. Когда я вхожу в систему как другой пользователь, скажите «admin01», значения не загружаются.

echo source /home/admin01/openrc>>~/.bash_profile

Я также попытался переместить этот файл в /etc/profile.d, но он, похоже, загружается только для root, а не для любого другого пользователя, входящего в систему. Может кто-нибудь, ПОЖАЛУЙСТА, объяснить, что происходит.

cp /home/admin01/openrc /etc/profile.d/openrc.sh

В /etc/profile есть такое предупреждение;

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

Обратите внимание, что все изменения, внесенные в / etc / profile и /etc/profile.d, будут применены к каждому пользователю, который входит в систему. Поскольку у меня есть подозрение, что этот файл openrc имеет учетные данные для аутентификации, вы должны быть уверены, что действительно хотите, чтобы это применялось к каждому пользователю. Если вы хотите, чтобы он применялся только к определенным пользователям, вы можете скопировать файл в их домашнюю папку и включить его в их ~ / .profile, указав строку source ~/openrc

Назови это /etc/profile.d/openrc.sh или используйте /etc/environment если вам нужно, чтобы переменные были определены и для демонов.

Вот пример (CentOS 7):

# ls -lhaZ /etc/profile.d/
[...]
-rw-r--r--. root root unconfined_u:object_r:bin_t:s0   /etc/profile.d/foo.sh

Содержание:

export HISTSIZE=10000
export HISTFILE=~/.bash_history
export HISTCONTROL=ignoredups:ignorespace:erasedups
export HISTTIMEFORMAT="%y-%m-%d %H:%M "

Вы вошли как пользователь без полномочий root:

$ set | grep HIST
HISTCONTROL=ignoredups:ignorespace:erasedups
HISTFILE=/home/user/.bash_history
HISTFILESIZE=10000
HISTSIZE=10000
HISTTIMEFORMAT='%y-%m-%d %H:%M '

С помощью /etc/environment, поместите строки в / etc / environment без export.

Имейте в виду, что вам, возможно, придется придерживаться /etc/environment когда вы не используете bash или не используете bash в качестве оболочки входа:

https://access.redhat.com/discussions/731373