Setiap kali saya menjalankan sudo su
dari normal saya zsh
(yang menggunakan kerangka oh-my-zsh ), saya dipaksa untuk menggunakan shell Bourne lama ( sh
) secara default (jelas; ini adalah perilaku standar pada kebanyakan sistem * mirip-nix). Jika saya lari zsh
dari dalam sh
setelah berlari sudo su
, saya mendapatkan shell Z, tetapi tanpa perbaikan dari oh-my-zsh.
Apakah ada cara untuk mengubah sudo su
peluncuran shell ke zsh
? Jika demikian, apakah mungkin untuk zsh
menggunakan instance peluncuran itu juga oh-my-zsh
?
Saya menggunakan OS X 10.8.4.
Dari halaman
su
manual, ada dua cara untuk mencapai hal ini.Metode pertama adalah dengan hanya menggunakan tanda
-s
atau--shell
(dengan anggapan Anda menggunakan OS * NIX dengan versisu
yang mendukung argumen ini), diikuti dengan jalur ke shell pilihan Anda. Jika shell yang diteruskan tidak dapat ditemukan,su
kembali ke metode berikut, dan jika gagal, akan mencoba memohon/bin/sh
.Misalnya, Anda dapat memaksa
su
untuk meluncurkanzsh
(dengan asumsi itu ada di/bin/zsh
) sebagai:Metode kedua adalah memodifikasi shell default yang ditentukan untuk
root
pengguna ( hati-hati! ). Ini dapat dilakukan dengan mengedit file/etc/passwd
dan mengubah shell yang ditentukan untukroot
pengguna. Untuk melihat shell apa yang ditentukan secara default, Anda dapat menjalankan perintah berikut (dengan asumsi superuser adalah root):Perintah harus menampilkan sesuatu seperti
root:x:0:0:root:/root:/bin/bash
. Anda dapat dengan mudah mengubah/bin/bash
(atau apa pun yang diatur dalam sistem Anda) untuk menunjukzsh
.sumber
sudo su -s /bin/zsh
(atau menggunakan--shell
) mengembalikansu: illegal option -- s
. Saya menggunakan OS X 10.8.4; apakah OS X mengambil perintah yang berbeda?cat /etc/shells
? Secara teknis hanya shell yang diizinkan dalam file itu yang akan diluncurkan, meskipun halamansu
manual mengatakan ini tidak masalah jikasu
disebut oleh root: Scat /etc/shells
kembali/bin/zsh
sebagai shell yang dapat diterima.Cara bersih yang juga akan melindungi sistem Anda jika shell kustom Anda diledakkan adalah dengan membuat .profile di direktori home root dengan:
Ubah saja path ke shell yang Anda inginkan alih-alih bash.
sumber
Dapat dengan mudah dilakukan dengan
chpass
:sumber