Оболонка за замовчуванням для rootOS X є /bin/sh. Це shтакож версія bash, але при посиланні на ім'я shBash :
намагається імітувати поведінку при запуску історичних версій shякомога ближче, одночасно відповідаючи стандарту POSIX.
Коли викликається як інтерактивна оболонка для входу, або як неінтерактивна оболонка з --loginможливістю, вона спочатку намагається прочитати та виконати команди з /etc/profileта ~/.profileв цьому порядку. ... оболонка, що викликається, як sh не намагається читати та виконувати команди з будь-яких інших файлів запуску
Тобто, він взагалі не читається .bash_profile, незалежно від того, викликали його як оболонку входу чи ні . Ви можете використовувати .profileнатомість або навіть символізувати одне до іншого. Якщо ви запускаєте оболонку для входу з su -l, .profileзавантажується при запуску, але .bash_profileніколи не буде.
Ви можете також використовуватиdscl для зміни оболонки суперкористувача (зауважимо , що /etc/passwdце НЕ використовується для визначення оболонки на OS X). Ви можете перевірити поточну оболонку кореня за допомогою dscl . -read /Users/root UserShell; проконсультуйтеся з документацією і ретельно подумайте, перш ніж змінити її на щось інше.
Інший підхід - просто змінити suвиклик, щоб примусити його bashнегайно виконувати .
З огляду на те, що ви сказали, я, мабуть, рекомендую посилання, але ви, можливо, захочете вивчити зміни, які вносить режим POSIX Баша, і вирішити, хочете ви їх мати чи ні.