شل پیش فرض هر کاربر در فایل
etc/passwd/ قابل مشاهده می باشد ولی از طریق این فایل اگر کاربر ریشه نباشید امکان تغییر وجود ندارد.
نمونه محتویات این فایل :
کد PHP:
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
فایل etc/shells/ حاوی لیستی از شل هایی است که بر روی سیستم موجود میباشد و از طریق آن می توانید شل مورد نظر خود را انتخاب کنید :
کد PHP:
webhostingtalk:~# cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/bash
/bin/rbash
هر کاربر تنها می تواند شل پیش فرض خود را تغییر دهد و تنها کاربر ریشه قادر است تنظیمات کاربران دیگر را تغییر دهد.
برای تغییر شل پیش فرض از دستور chsh استفاده می کنیم که خلاصه شده change shell می باشد :
کد PHP:
chsh -s {shell-name} {user-name}
shell-name نام شل مورد نظر می باشد که باید آدرس کامل آن وارد شود .
user-name نام کاربری که این تغییرات بر روی آن اعمال می شود. در صورتی که کاربر ریشه هستید از این گزینه استفاده کنید.
مثال :
تغییر شل کاربر جاری
بعد از زدن این دستور از شما پسورد خواسته می شود که می بایست پسورد خود را وارد کنید.
تغییر شل پیش فرض کابر رضا از طریق کاربر ریشه :
کد PHP:
chsh -s /bin/csh reza
وقتی از کاربر ریشه استفاده می کنیم پسورد پرسیده نخواهد شد.
مشاهده تغییرات :
قبل از دستور
کد PHP:
webhostingtalk:~# cat /etc/passwd | grep reza
reza:x:1000:1000:reza,,,:/home/reza:/bin/bash
بعد از دستور
کد PHP:
webhostingtalk:~# cat /etc/passwd | grep reza
reza:x:1000:1000:reza,,,:/home/reza:/bin/csh