Permintaan maaf sebelumnya jika pertanyaan ini akan mengganggu semua orang seperti yang saya hargai, sudah diajukan dengan berbagai cara sebelumnya. Yakinlah, saya telah membaca arsip dan telah mencoba setidaknya beberapa saran tetapi masih tidak dapat menyelesaikan masalah (sederhana). Semoga seseorang dapat memberikan jawaban dan saya bisa merasa direndahkan. FYI, untuk menghindari ambiguitas, saya akan menggunakan jalur absolut dan bukan relatif.
Ketika saya masuk, saya melakukannya sebagai pengguna adam
. Alias di dalam /Users/adam/.bash_profile
dimuat dan saya dapat menggunakannya segera setelah menarik terminal. Saya tidak menggunakan .bashrc
file dan itu bagus.
Sesekali, saya beralih ke root dengan mengetik su
ke terminal dan kemudian memasukkan kata sandi saya. Perubahan cepat dan saya sekarang menjadi pengguna root. Pertanyaan saya adalah ini: segera setelah menjadi root, bisakah profil root bash saya dimuat tanpa saya harus secara manual mencari file profil? Alasan saya tahu itu tidak terjadi secara otomatis adalah karena saya memiliki alias yang sama di file profil root saya dan saya /Users/adam/.bash_profile
. Setelah menjadi pengguna root, kecuali saya mengetik source [root_profile_file]
, mereka tidak berfungsi. Saya telah mencoba mengatur permutasi berikut dan kemudian beralih ke root melalui terminal tetapi tidak satupun dari mereka secara otomatis sumber profil / alias (catatan, saya tidak punya opsi di bawah ini mengatur secara bersamaan jadi saya tidak berpikir saya ' m membingungkan sistem):
Opsi 1: masukkan alias saya/etc/profile
Pilihan 2:
- di
/etc/profile
, masukkan[ -r /etc/bashrc ] && . /etc/bashrc
- masukkan alias saya
/etc/bashrc
Opsi 3:
- di
/etc/bash_profile
, masukkan[ -r /etc/bashrc ] && . /etc/bashrc
- masukkan alias saya
/etc/bashrc
Opsi 4: masukkan alias saya/var/root/.profile
Opsi 5:
- di
/var/root/.profile
, masukkan[ -r /var/root/.bashrc ] && . /var/root/.bashrc
- masukkan alias saya
/var/root/.bashrc
Opsi 6:
- di
/var/root/.bash_profile
, masukkan[ -r /var/root/.bashrc ] && . /var/root/.bashrc
- masukkan alias saya
/var/root/.bashrc
Harap dicatat, dengan salah satu di atas, jika saya beralih ke root dan kemudian ketik source root_profile_file
alias yang dimuat tetapi hanya jika saya memang sumber file secara manual. Mungkin saya benar-benar salah mengerti bagaimana bash bekerja dan tidak mungkin untuk mencari file profil secara otomatis setelah beralih ke root tetapi saya berharap ada solusi sederhana. Terima kasih sebelumnya kepada siapa saja yang meluangkan waktu untuk membaca pesan ini.
su
bekerja jugaroot
. Adasudo
untuk tujuan itu, atau Anda dapat bekerja sedemikian rupa sehingga Anda tidak memerlukan hak akses root sama sekali.Sebenarnya root menggunakan
/bin/sh
(bourne shell lama),.bash_profile
dan.bashrc
dibaca oleh bash.Itu menjadi rumit karena file-file itu mungkin menggunakan fungsionalitas yang tidak tersedia di
sh
. Bahkan jika Andasource .bashrc
atausource .bash_profile
, Anda masih akan memiliki beberapa masalah dengan fungsi kompleks misalnya.Salah satu cara untuk mengatasi ini adalah dengan menjalankan
untuk beralih ke
root
shellbash
.sumber
/bin/sh
menggunakan/var/root/.profile
file. Terima kasih atas jawabanKetika saya benar-benar harus, saya
sudo bash
yang membuat saya root tetapi dengan lingkungan JRobert. .Bashrc saya mengandung:, untuk membuat root-prompt memelototi saya di RED untuk menekankan bahwa saya sekarang (lebih) rentan terhadap saya sendiri [pilih satu: kurang ajar, bodoh, kecenderungan gemuk-jari, keengganan untuk mengambil nasihat yang baik, lanjut s.creek - jangan jatuhkan dayung].
sumber
Saya menggunakan
sudo -i
untuk beralih ke pengguna root. Dalam hal ini, konfigurasi shell dibaca dari/var/root/.profile
.sumber
Secara umum, saya menyarankan agar
su
tidak berbahaya, hanya mencarinya dan Anda tahu mengapa. Ke pertanyaan Anda, akun root bekerja dengan cara yang sama seperti yang dilakukan akun Anda: akun sumbernya ~ / .bash_profile dan / atau ~ / .bashrc. Saya tidak tahu yang mana, tetapi intuisi saya condong ke ~ / .bashrc , jadi Anda mungkin ingin mencoba untuk meletakkan alias di sana. Berikut ini sarannya:sumber
sudo dscl . -change /Users/root UserShell /bin/sh /bin/bash
Hanya ini yang berfungsi! Saya mencoba meletakkanexport PS1=...
file saya di salah satu dari semua file di atas. / etc / profile, / etc / bashrc /var/root/.bashrc /var/root/.profile /var/root/.bash_profile.Dari semua file ini
/bin/sh
shell, tidak membaca informasi! (hanya bash) (Mac OS El Capitan). Dan saya harus mengganti shell menjadi bash.Juga
"su -"
berfungsi. (dengan shell ini membaca/var/root/.profile
file)sumber
Salah satu cara untuk mengatasi ini adalah dengan menjalankan yang berikut untuk mengganti shell root ke bash:
Solusi ini telah memperbaiki masalah saya juga.
sumber
jika Anda hanya memiliki satu pengguna 'default' dan pengguna root, Anda dapat memakai
alias su="su -"
.bash_profile dari pengguna 'default' dan Anda mendapatkan efek yang Anda inginkan. Bekerja dan tanpa hal-hal yang menjebak.sumber