Bagaimana mengatur PATH untuk semua pengguna di Debian?


25

Saya memiliki server Debian Lenny, dan saya ingin agar www-datapengguna memiliki /usr/local/zend/binPATH-nya, sehingga dapat menjalankan skrip dalam cron as www-data.

Bagaimana cara menambahkan /usr/local/zend/binke PATH, sehingga www-datadapat mengeksekusi file /usr/local/zend/bin?

Jawaban:


40

Tempat pertama di mana PATH diatur adalah /etc/login.defs. Ada pengaturan untuk root dan pengaturan untuk semua orang.

Tempat lain di mana Anda dapat mendefinisikan variabel lingkungan adalah /etc/environment. Pengaturan ini akan berlaku untuk semua orang (Anda tidak dapat menulis kode shell sembarang di sana).

Tempat ketiga di mana Anda dapat mendefinisikan variabel lingkungan adalah /etc/profile. Di sana Anda dapat menulis kode shell sewenang-wenang. Jika Anda menginginkan pengaturan khusus pengguna, ada file per pengguna yang sesuai ~www-data/.profile. Tetapi ini hanya akan berlaku untuk login interaktif konsol; khususnya itu tidak akan berlaku untuk pekerjaan cron kecuali jika mereka secara eksplisit sumber /etc/profile.

Jika Anda hanya memerlukan PATHpengaturan itu di crontab pengguna, Anda dapat menuliskannya di awal crontab. Perhatikan bahwa Anda memerlukan daftar lengkap ( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin), Anda tidak dapat menggunakan substitusi variabel ( PATH=$PATH:/usr/local/zend/bintidak akan berfungsi di sana).


---- bagaimana Anda memuat ulang mis /etc/login.defs?
MrCalvin

@MrCalvin Dengan masuk.
Gilles 'SO- stop being evil'

1
Apakah ada alasan /etc/login.defsuntuk diabaikan? Saya telah memperbarui ENV_PATHdan menggemakan $ PATH saat .bashrc dimuat. Di suatu tempat di tengah itu entah sedang diubah, atau itu tidak diperbarui karena menampilkan nilai lama. Saya telah me-restart komputer - jadi bukan itu.
Annan

@Annan Kemungkinannya sedang diubah di suatu tempat. Perhatikan bahwa jawaban saya ditulis pada 2010, sebelum systemd; jika sistem Anda menggunakan systemd, itu mungkin memiliki cara sendiri untuk mendefinisikan PATHsebagai tambahan atau sebagai pengganti cara lain.
Gilles 'SANGAT berhenti menjadi jahat'

8

Untuk menetapkan jalur untuk semua pengguna kecuali root, edit /etc/profileatau /etc/enviroment. Untuk root atau masing-masing pengguna mengedit masing .bashrc- masing atau .bash_profiledi direktori home mereka. Tambahkan PATH=$PATH:/new/location/.


1

Untuk mengatur var untuk semua pengguna tanpa membebani Anda profile, Anda dapat menambahkan skrip kecil Anda sendiri di /etc/profile.ddirektori seperti itu:

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

Kemudian login kembali.


1

nano / etc / profile

Tambahkan baris ini ke akhir file:

export JAVA_HOME = / opt / jdk-12.0.1

export MAVEN_HOME = / opt / apache-maven-3.6.1

export M2_HOME = / opt / apache-maven-3.6.1

ekspor M2 = / opt / apache-maven-3.6.1 / bin

export PATH = $ JAVA_HOME / bin: $ M2: $ PATH

Simpan file. Mulai ulang atau gunakan perintah di bawah ini:

sumber / etc / profile

Uji pengaturan Anda:

echo $ JAVA_HOME

javac --versi

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.