Як встановити PATH для всіх користувачів у Debian?


25

У мене є сервер Debian Lenny, і я хотів би, щоб у www-dataкористувача був /usr/local/zend/binйого PATH, щоб він міг виконувати скрипт в cron як www-data.

Як додати /usr/local/zend/binдо PATH, щоб www-dataможна було виконувати файли в /usr/local/zend/bin?

Відповіді:


40

Перше місце, де встановлено PATH, - це /etc/login.defs. Є налаштування для root та налаштування для всіх інших.

Ще одне місце, де можна визначити змінні середовища - це /etc/environment. Ці налаштування застосовуватимуться до всіх (туди не можна записувати довільний оболонку).

Третє місце, де можна визначити змінні середовища - це /etc/profile. Там ви можете написати довільний код оболонки. Якщо ви хочете налаштувати конкретний користувач, є відповідний файл для кожного користувача ~www-data/.profile. Але це стосується лише консольних інтерактивних входів; зокрема, він не застосовуватиметься до завдань cron, якщо вони не мають явного джерела /etc/profile.

Якщо вам потрібен лише цей PATHпараметр у користувацькій crontab, ви можете записати його на початку crontab. Зауважте, що вам потрібен повний список ( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin), ви не можете використовувати заміну змінної ( PATH=$PATH:/usr/local/zend/binтам не буде працювати).


---- як ви перезавантажуєте напр. /etc/login.defs?
MrCalvin

@MrCalvin Увійдіть у систему.
Жиль "SO- перестань бути злим"

1
Чи є якісь причини /etc/login.defs, ігноруються? Я оновив ENV_PATHі повторюю $ PATH під час завантаження .bashrc. Десь у середині він або змінюється, або не оновлюється, оскільки відображає старе значення. Я перезапустив комп’ютер - значить, це не так.
Аннан

@Annan Можливо, це десь зміниться. Зауважте, що моя відповідь була написана в 2010 році, перед системою; якщо ваша система використовує systemd, вона може мати власний спосіб визначення PATHдодатково або заміною інших способів.
Жил "ТАК - перестань бути злим"

8

Для того, щоб встановити шлях для всіх користувачів , крім кореневого, редагування /etc/profileабо /etc/enviroment. Користувач root або окремий користувач редагують відповідно їхні .bashrcабо .bash_profileїхні домашні каталоги. Додайте PATH=$PATH:/new/location/.


1

Щоб просто встановити var для всіх користувачів, не обтяжуючи своїх profile, ви можете додати свій власний невеликий сценарій у такий /etc/profile.dкаталог:

echo 'PATH="/usr/local/zend/bin:$PATH"' > /etc/profile.d/zend_path.sh

Потім перейдіть.


1

nano / тощо / профіль

Додайте ці рядки до кінця файлу:

експортувати JAVA_HOME = / opt / jdk-12.0.1

експортувати MAVEN_HOME = / opt / apache-maven-3.6.1

експортувати M2_HOME = / opt / apache-maven-3.6.1

експорт M2 = / opt / apache-maven-3.6.1 / бін

експортувати PATH = $ JAVA_HOME / бін: $ M2: $ PATH

Збережіть файл. Перезапустіть або скористайтеся командою нижче:

джерело / тощо / профіль

Перевірте свої налаштування:

echo $ JAVA_HOME

javac --версія

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.