.bash_profile su çalıştırılırken kaynaklanmadı


41

Bir kullanıcının, diyelim ki var user1onun değişiklikler vardır, .bash_profilebunlardan, biri değişen PATH, örneğin: export PATH=/some/place:$PATH. Bu değişiklik olarak oturum açarsam user1veya a yaparsam bu işe yarar su - user1.

Fakat eğer bir komutu suas ile çalıştırmayı denersem root, örneğin:

su -c test.sh oracle

(test içerir echo $PATH)

Bu konuda değiştirilmiş PATH(veya kökler) gözükmüyor PATH. Ayrıca kopyalama denedim .bash_profilehiç .profileboşuna.

Bu neden oluyor?


kullanınsu
Nikhil Mulley

1
FYI - bash yapılandırma dosyalarına güzel yazma hacktux.com/bash/bashrc/bash_profile
Nikhil Mulley

Yanıtlar:


60

Kullanılması suolmadan -lveya -başlar bashbelirttiğiniz dosyaların birinden okumaz etkileşimli, ama olmayan giriş kabuğu gibi. -lVeya -seçeneğini kullanın veya ilgili konfigürasyonu yerleştirin /root/.bashrc.

Config dosyalarının hızlı özeti:

  • Giriş kabuğu ( -l/ --login) okur /etc/profileilk ve daha sonra birinci bunun bulur: ~/.bash_profile, ~/.bash_login, ve ~/.profile.
  • Etkileşimli ancak giriş yapmayan shell ( -i), okur /etc/bash.bashrcve ~/.bashrcbu sırada ( --rcfileseçenek kullanılmadığı ve başka bir yere bakmasını söylemediği sürece ).
  • Etkileşimli olmayan kabukları, örneğin -lveya -iişaretlerini kullanmadan başka bir programdan başlatılan , BASH_ENVortam değişkeninde belirtilen dosyayı okur .
  • shGiriş kabuğu olarak çalıştırıldığında , bu sırayla /etc/profileve okuyacak ~/.profile.
  • shEtkileşimli olmayan bir oturum açma olarak çalıştırıldığında, içinde belirtilen dosyayı okur ENV.

5

Bash, bunun bir giriş kabuğu olduğuna inanıp inanmadığına bağlı olarak farklı davranır, yani bir sistemde oturum açtığınızda çalışan ilk kabuk. Sadece .bash_profilebir giriş kabuğu ise okur . PATHDeğişen kodu .bashrcyerine koyarsanız, sadece giriş kabukları değil, tüm etkileşimli bash kabukları için çalıştırılır.


0

Gnome ortamını Scientific Linux 6'da kullanıyorsanız (veya muhtemelen RHEL 6), bir terminal başlatın. Git Edit-> Profile Preferences-> "Title and Command"sekmesi. "Komutu bir giriş kabuğu olarak çalıştır" onay kutusunun işaretli olduğundan emin olun. Bunu .bash_profileyapmazsam Gnome terminal uygulamasının benim yok sayıyor olduğunu buldum .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.