Kök neden .bash_profile kaynağını oluşturmaz?


10

Her zaman su(değil su -) kullanarak root olarak giriş yapmaya çalıştığımda .bash_profile, user1'in ana dizininde kaynak oluşturmaz.

Temelde, benim /var/rootdizin yok .bash_profileben bir kopyasını koymak, böylece .bash_profilede /var/roottest su -.

Ayrıca otomatik olarak kaynak .bash_profile(in var/root) yapmaz .

Her neyse, .bash_profilekullanıcı1'i kullandığımda otomatik olarak kök hesaptan yapmak istiyorum su.

Ne yapmalıyım?

(Daha önce çalıştı! Bir gün, sadece kaynak değil! Belki bash'da bir şey ayarları değiştirdi mi? source .bash_profileGiriş yaptıktan sonra girdiğimde çalışır .)

Mac ve OS X Yosemite kullanıyorum.

Yanıtlar:


11

rootOS X için varsayılan kabuk şudur /bin/sh. Onun shda bir sürümüdür bash, ancak adı ile çağrıldığında shBash :

shPOSIX standardına da uyurken , tarihsel sürümlerinin başlangıç ​​davranışlarını mümkün olduğunca yakından taklit etmeye çalışır .

Etkileşimli bir giriş kabuğu veya --loginseçenekle etkileşimli olmayan bir kabuk olarak çağrıldığında , önce ve sırasıyla komutları okumaya ve yürütmeye çalışır . ... sh olarak çağrılan bir kabuk, diğer başlangıç ​​dosyalarındaki komutları okumaya ve yürütmeye çalışmaz/etc/profile~/.profile

Olduğunu, bu okumaz .bash_profile, hiç olursa olsun, bir giriş kabuğu veya olmasın olarak çağrıldı olsun . Bunun .profileyerine, hatta birini birbirine bağlayabilirsiniz. Eğer bir giriş kabuğu başlatmak durumunda su -l, .profilebaşlangıçta yüklenen, ancak .bash_profileolmayacak.


Ayrıca edebilirsiniz kullanmakdscl (belirterek root kabuk değiştirmeye /etc/passwdedilir değil OS X üzerinde kabuk belirlemek için kullanılır). Kökün mevcut kabuğunu dscl . -read /Users/root UserShell; belgelere bakın ve başka bir şeye değiştirmeden önce dikkatlice düşünün.

Başka bir yaklaşım, derhal suyürütmeye zorlamak için isteğinizi değiştirmektir bash.

Söyledikleriniz göz önüne alındığında, sembolik bağlantıyı öneririm, ancak Bash'in POSIX modunun yaptığı değişikliklere bakmak ve bunlara sahip olmak isteyip istemediğinize karar vermek isteyebilirsiniz.



5

Kök kullanıcı, bir oturum açma kabuğu çağırmamanız nedeniyle .bash_profile yerine .bashrc dosyasını yürütmeye çalışır.

Bash el kitabından man bash:

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bashrc
          The individual per-interactive-shell startup file

Not ~Bashrc dosya kök kullanıcının bir ana dizin içinde olması gereken yerde.

Sorunuzu yanıtlamak için, user1'in .bashrc dosyasının kullanılmasını istiyorsanız, user1'den root kullanıcısına .bashrc kaynağı arasında (sembolik) bir bağlantı yapmanızı öneririm.

Satırı . /homedirectory/of/user1/.bash_profilekök kullanıcının .bashrc dosyasına ekleyerek user1 .bashrc hatta .bash_profile kaynağını da kullanmayı düşünebilirsiniz .

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.