Linux Shell Değiştirme
Bu makalede, Linux’ta bir kullanıcının kabuğu (shell) nasıl değiştirileceğini açıklayacağım.
İşletim sisteminde yüklü tüm shell’leri görüntüleme /etc/shells klasöründeki dosyaları görüntüleyebiliriz. Bunun için cat komutu ile aşağıdaki ifadeyi komut satırınıza yazınız.
cat /etc/shells
Bu komutun çıtısı aşağıdaki gibi olacaktır.
alikemal@pop-os:/bin$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
Kullanıcı giriş bilgileri linux’da /etc/passwd dosyasında tutulur. Bir kullanıcının kullandığı shell’i görüntülemek için bu dosyayı kullanabiliriz. /etc/passwd dosyasının her satırı virgülle ayrılmış yedi alan içerir. Son alanda ise kullandığı login shell yer alır.
mark:x:1001:1001:mark,,,:/home/mark:/bin/bash
[--] - [--] [--] [-----] [--------] [--------]
| | | | | | |
| | | | | | +-> 7. Login shell
| | | | | +----------> 6. Home directory
| | | | +--------------------> 5. GECOS
| | | +--------------------------> 4. GID
| | +-------------------------------> 3. UID
| +-----------------------------------> 2. Password
+----------------------------------------> 1. Username
Kullanmış olduğum linux pop!_os işletim sisteminde kullanıcı alikemal ‘in kullandığı default shell’e bakalım.
# cat /etc/passwd | grep alikemal
alikemal:x:1000:1000:Ali Kemal,,,:/home/alikemal:/bin/dash
Görüdüğünüz gibi son kısımda /bin/dash ifadesiyle dash shell kullandığım gözükmektedir.
Kullanıcının kullandığı shell’i değiştirmek için usermod komutu kullanılır. Usermod komutu bir kullanıcının bilgilerinde değişiklik yapmak için kullanılır.
usermod --shell /bin/sh username
İkinci bir yöntem ise chsh komutu ile yapılabilir.
chsh --shell /bin/bash username
sudo vi /etc/passwd veya sudo vipw komutları ile /etc/passwd doğrudan düzenlebiliriz. Fakat burada dikkat edilmesi gereken şey passwd dosyasıdna yacağınız en küçük hata sisteminize önemli zararlar verebilir. O nedenle bu gibi tehlike arz eden durumlarda işlevi doğrudan yapan komutlar tercih edilebilir.