Bash: Kullanıcıdan köke geçmek istemde sorunlara neden oluyor


0

Mac'te, Snow Leopard'ı çalıştırıyorum (eğer önemliyse). Kullanıcıya özel yerlerden çekilecek şeyleri görüntülemek için bash komut istemimi özelleştiriyorum. Örneğin, Ruby'nin farklı sürümlerini yönetmek için Ruby Sürüm Yöneticisi kullanıyorum . Bilgi isteminde kullandığım Ruby sürümünü görüntülüyorum. Ayrıca Homebrew kullanıyorum ve Git'i Homebrew aracılığıyla yükledim. Git dalını istemde de görüntülüyorum.

Sorun, root'a (sudo su veya sudo bash) geçdiğimde, RVM veya Homebrew'u bulamayacağı için kullanamayacağım olan kullanıcı istemimi kullanmaya çalışıyor. Bu yüzden hataları görüntüler. Hataları görüntülememesi için nasıl düzeltebilirim? (ya RVM / Homebrew'ı hala o kullanıcıymışım gibi getirerek ya da özel istemi göstermeden)

Yanıtlar:


1

seçenek 1

sudo su -Sadece yerine kullanınsudo su

Ekstra çizgi -ltam oturum açmayı simüle eden bir eş anlamlıdır . Bu, kök kullanıcının ev dizininden config dosyalarını (.bashrc, .profile, vb.) Okuyacağı anlamına gelir.

seçenek 2

Kendi .bashrc'nizi kullanmakta ısrar ediyorsanız, yola koymadan önce RVM'nin varlığını kontrol etmek için bir test uygulayın. Bunun gibi bir şey:

type rvm > /dev/null
RVM_EXISTS=$?  # get exit status, 0 if it exists
if [ $RVM_EXISTS ] 
then
    PS1=(your rvm code here)
else
    PS1=(your prompt w/o rvm here)
fi

(test edilmedi)

Seçenek 3

Seçenek 2'deki gibi rvm'nin varlığını test edin, ancak yoksa ve değişmezse kukla bir rvm bash işlevi oluşturun PS1

type rvm > /dev/null
RVM_EXISTS=$?  # get exit status, 0 if it exists
if [ ! $RVM_EXISTS ] 
then
   rvm () { echo > /dev/null }
fi

0

$ PS1 sistem değişkenini değiştirerek komut isteminizi değiştirmeniz gerekir.

Ana bilgisayar adınızı ve ardından dolar işaretini görüntülemek istiyorsanız, aşağıdakileri yapabilirsiniz: export PS1='h:\W\$'

Bir sonraki Bash kabuğu için ayarlarınızı korumak için $ HOME / .bashrc'nize şöyle bir satır yerleştirin: PS1='\h:\W\$'

Mac kullanıcıları, aşağıdakilere dikkat ederler: OS X ve Terminal uygulaması işleme komut emülasyonu nedeniyle, $ HOME / .bash_profile dosyasını oluşturup şu satırı girmeniz gerekir: source ~ / .bashrc

Kaynak


0

Hepsini kökün ana dizininde ayarlayarak farklı bir .bashrc veya aynı bir dosya kullanmasını sağlayabilirsiniz (sadece mv)


0

Tamamen emin değilim, ancaksudo -s çalışanın hala tüm çevre değişkenlerinizle birlikte kök kabuğunu çalıştıracağına inanıyorum .


0

Oy vermeme izin vermeyecek, ancak Doug Harris'in doğru cevabı var: "sudo su kullanın - sadece sudo su yerine"

Bu, bunu yapmanın en kolay yoludur. Ve herhangi bir kullanıcı kendi giriş ortamını üstlenmek için sudo giderken çalışır. Ben şahsen root'un giriş ortamı ile uğraşmazdım ve onun yerine "sudo su -" kullanırdım.

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.