Могу ли я иметь определенные настройки, универсальные для всех моих пользователей?
Как установить переменную среды для всех в моей Linux-системе?
Ответ 1
Также как и /etc/profile
, о которых говорили другие, некоторые Linux-системы теперь используют каталог /etc/profile.d/
; любые .sh
файлы там будут получены /etc/profile
. Это немного более аккуратно, чтобы сохранить ваши пользовательские среды в этих файлах, а не просто редактировать /etc/profile
.
Ответ 2
Если все службы входа в систему используют PAM, а все службы входа в систему имеют session required pam_env.so
в своих соответствующих файлах конфигурации /etc/pam.d/*
, тогда все в сеансах входа будут установлены некоторые переменные среды, указанные в конфигурационном файле pam_env
.
В большинстве современных дистрибутивов Linux это все по умолчанию - просто добавьте желаемые переменные глобальной среды в /etc/security/pam_env.conf
.
Это работает независимо от оболочки пользователя и работает для графического входа в систему (если xdm/kdm/gdm/вход/& hellip; настроен таким образом).
Ответ 3
Если ваш LinuxOS имеет этот файл:
/etc/environment
Вы можете использовать его для постоянной установки переменных окружения для всех пользователей.
Извлечен из: http://www.sysadmit.com/2016/04/linux-variables-de-entorno-permanentes.html
Ответ 4
Удивительно, но Unix и Linux на самом деле не имеют места для установки глобальных переменных окружения. Лучшее, что вы можете сделать, это организовать для любой конкретной оболочки инициализацию, специфичную для сайта.
Если вы поместите его в /etc/profile
, это позаботится о вещах для большинства совместимых с posix пользователей оболочки. Это, вероятно, "достаточно хорошо" для некритических целей.
Но любой, у кого есть оболочка csh
или tcsh
, не увидит его, и я не верю, что csh
имеет глобальный файл инициализации.
Ответ 5
Некоторые интересные выдержки из bash manpage:
Когда bash вызывается как интерактивный логин, или как неинтерактивный оболочка с опцией
--login
, она сначала считывает и выполняет команды из файл/etc/profile
, если этот файл существует. Прочитав этот файл, он ищет~/.bash_profile
,~/.bash_login
и~/.profile
, в этом порядок, чтение и выполнение команд от первого, который существует и удобочитаемый. Опция--noprofile
может использовать, когда оболочка запускается препятствуют этому поведению.
...
Когда интерактивная оболочка, которая не является логином запускается оболочка, bash читает и выполняет команды из/etc/bash.bashrc
и~/.bashrc
, если эти файлы существуют. Это может быть с помощью опции--norc
. Опция файла--rcfile
будет принудительно bash для чтения и выполнения команд из вместо/etc/bash.bashrc
и~/.bashrc
.
Итак, взгляните на /etc/profile
или /etc/bash.bashrc
, эти файлы являются подходящими местами для глобальных настроек. Поместите в них что-то вроде этого, чтобы настроить переменную environement:
export MY_VAR=xxx
Ответ 6
Использование PAM отлично.
# modify the display PAM
$ cat /etc/security/pam_env.conf
# BEFORE: $ export DISPLAY=:0.0 && python /var/tmp/myproject/click.py &
# AFTER : $ python $abc/click.py &
DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
abc DEFAULT=/var/tmp/myproject
Ответ 7
Каждый процесс, выполняющийся под ядром Linux, получает свою собственную уникальную среду, которую он наследует от своего родителя. В этом случае родитель будет либо самой оболочкой (порождение подклассов), либо программой "входа" (в типичной системе).
Поскольку среда каждого процесса защищена, нет никакого способа "вставить" переменную окружения в каждый запущенный процесс, поэтому, даже если вы измените стандартную оболочку .rc/profile, она не вступит в силу до тех пор, пока каждый процесс завершает и перезагружает свои настройки запуска.
Посмотрите/etc/, чтобы изменить начальные переменные по умолчанию для любой конкретной оболочки. Просто поймите, что пользователи могут (и часто делают) изменять их в своих индивидуальных настройках.
Unix предназначен для подчинения пользователю в пределах.
NB: Bash не является оболочкой только в вашей системе. Обратите особое внимание на то, на что собственно указывает символическая ссылка /bin/sh. На многих системах это может быть тире, которое (по умолчанию, без специального вызова) POSIXLY правильно. Поэтому вы должны позаботиться о том, чтобы изменить как значения по умолчанию, так и сценарии, начинающиеся с /bin/sh, не наследуют ваши глобальные значения по умолчанию. Точно так же будьте осторожны, чтобы избежать синтаксиса, который понимает только bash при редактировании обоих, aka avoiding bashisms
.
Ответ 8
Если вы работаете над ubuntu, введите эту команду ~/.bashrc (если вы используете gedit, вы можете ввести gedit ~/.bashrc), тогда напишите переменную окружения что вы хотите сохранить все сеансы терминала, например экспортная переменная = "2015"
Ответ 9
- Загрузите jdk с помощью wget
- найдите путь java, используя $, который java он покажет вам, где хранится JAVA i.e/usr/lib/jvm/java-8-openjdk-amd64//bin/java
- Скопируйте приведенный выше путь i.e/usr/lib/jvm/java-8-openjdk-amd64/
- Теперь откройте .bashrc с помощью редактора nano i.e nano.bashrc
- Добавьте путь в файл .bashrc, то есть JAVA_HOME, с помощью экспортной камеры и сохраните файл, т.е. экспортировать JAVA_HOME =/usr/lib/jvm/java-8-openjdk-amd64/ и экспорт PATH = $JAVA_HOME/bin: $PATH
- Запустить $source ~/.bashrc
- $echo $PATH
Ваш Путь установлен