Shell default untuk root
pada OS X adalah /bin/sh
. Ini sh
juga merupakan versi bash
, tetapi ketika dipanggil dengan nama sh
Bash :
mencoba meniru perilaku startup dari versi historis sh
semirip mungkin, sambil menyesuaikan dengan standar POSIX juga.
Ketika dipanggil sebagai shell login interaktif, atau sebagai shell non-interaktif dengan --login
opsi, ia terlebih dahulu mencoba membaca dan menjalankan perintah dari /etc/profile
dan ~/.profile
, dalam urutan itu. ... shell dipanggil karena ia tidak berusaha membaca dan menjalankan perintah dari file startup lainnya
Artinya, itu tidak membaca .bash_profile
sama sekali, terlepas dari apakah itu dipanggil sebagai shell login atau tidak . Anda bisa menggunakan .profile
, atau bahkan menghubungkan satu dengan yang lainnya. Jika Anda meluncurkan shell login dengan su -l
, .profile
dimuat saat startup, tetapi .bash_profile
tidak akan pernah.
Anda juga dapat menggunakandscl
untuk mengubah shell root (mencatat bahwa /etc/passwd
ini tidak digunakan untuk menentukan shell pada OS X). Anda dapat memeriksa shell root saat ini dengan dscl . -read /Users/root UserShell
; lihat dokumentasi dan pikirkan baik-baik sebelum mengubahnya ke hal lain.
Pendekatan lain adalah dengan mengubah su
permohonan Anda untuk memaksa eksekusi bash
segera.
Mengingat apa yang Anda katakan, saya mungkin akan merekomendasikan symlink, tetapi Anda mungkin ingin melihat perubahan yang dibuat oleh mode POSIX Bash dan memutuskan apakah Anda ingin memilikinya atau tidak.