GNU/Linux >> Belajar Linux >  >> Linux

.bash_profile Tidak Bersumber Saat Menjalankan Su?

Saya memiliki pengguna, katakan user1 , yang memiliki modifikasi pada .bash_profile , salah satunya mengubah PATH , misalnya:export PATH=/some/place:$PATH . Perubahan ini berfungsi dengan baik jika saya masuk sebagai user1 atau lakukan su - user1 .

Tetapi jika saya mencoba menjalankan perintah melalui su sebagai root , misalnya:

su -c test.sh oracle

(tes berisi echo $PATH )

Tampaknya tidak memiliki PATH yang dimodifikasi (atau PATH root's , untuk hal tersebut). Saya juga mencoba menyalin .bash_profile ke .profile , tidak berhasil.

Mengapa ini terjadi?

Jawaban yang Diterima:

Menggunakan su tanpa -l atau - memulai bash sebagai shell interaktif, tetapi non-login, yang tidak membaca dari salah satu file yang Anda tentukan. Gunakan -l atau - atau masukkan konfigurasi yang relevan ke /root/.bashrc .

Ringkasan cepat file konfigurasi:

  • Login shell (-l /--login ) membaca /etc/profile pertama, dan kemudian yang pertama ditemukan:~/.bash_profile , ~/.bash_login , dan ~/.profile .
  • Cangkang interaktif tapi non-login (-i ) membaca /etc/bash.bashrc dan ~/.bashrc , dalam urutan itu (kecuali --rcfile opsi digunakan dan memintanya untuk mencari di tempat lain).
  • Cangkang non-interaktif, mis. dimulai dari dalam program lain tanpa menggunakan -l atau -i flag, membaca file yang ditentukan dalam BASH_ENV variabel lingkungan.
  • Saat dijalankan sebagai sh sebagai shell login, ia akan membaca /etc/profile dan ~/.profile , dalam urutan itu.
  • Saat dijalankan sebagai sh sebagai non-login interaktif, ia membaca file yang ditentukan dalam ENV .

Linux
  1. Vim Tidak Berjalan Di Dalam Tmux?

  2. Tidak Dapat Menghapus File, Bahkan Saat Menjalankan Sebagai Root?

  3. Apache/Mysql Tidak Berjalan. Salah?

  1. Sarankan Pemasangan Paket Saat Menjalankan Perintah yang Tidak Tersedia

  2. GLIBCXX_3.4.9 tidak ditemukan saat menjalankan ffmpeg dari php di server lampp

  3. perintah tidak ditemukan saat menggunakan sudo

  1. [OpenStack-Devstack]:Kesalahan:Layanan n-net tidak berjalan saat menjalankan stack.sh

  2. Linux – Kapan Saya Tidak Harus Membunuh -9 Proses?

  3. Mengapa Seseorang Dapat Menambahkan ~/.profile Ke ~/.bash_profile?