|  | 9.53 การทำ restricted shell : การจำกัดผู้ใช้ให้ใช้งานในเมนูที่เตรียมไว้
 
 apples@chek.com ซึ่งดูแลระบบของ http://academic.cmri.ac.th แนะนำเรื่องนี้จนผมทำได้ โดยเฉาะ code ของ menu copy มาทั้งแท่งเลยครับ เมื่อนำมาให้บริการพร้อมกับ ssh (Secure Shell) จะเป็นการให้บริการที่สมบูรณ์ และปลอดภัยมาก (ในปัจจุบัน)
 วิธีการทำ restricted shell
สร้างห้อง /rbin (ผมสร้างเพื่อแยกออกมาจากระบบเดิม .. อาจไม่จำเป็น)
ln -s /usr/bin/bash /rbin/rbash (คำสั่งนี้ผมยังไม่เห็นประโยชน์แต่ก็ทำไว้ก่อน)
สร้างแฟ้ม menu ด้วย pico ตาม code ด้านล่างนี้เป็น shell script ธรรมดา
chmod 755 menu เพื่อให้ shell script ประมวลผลได้
แก้แฟ้ม /etc/shells ด้วย pico โดยเพิ่ม /rbin/menu เข้าไปต่อบรรทัดสุดท้าย
แก้ shell ทุกคนในแฟ้ม /etc/passwd เป็น /rbin/menu หรือให้ usermod -s /rbin/menu [username]
เพียงเท่านี้ user ที่เปิดเข้ามาจะต้องเข้ามาที่เมนู /rbin/menu ใช้บริการที่เตรียมไว้
ถ้าไม่ใช้ script สร้าง user จะต้องแก้แฟ้ม /etc/default/useradd ให้เป็น shell /rbin/menu
ถ้าใช้ script _crt จะต้องแก้บรรทัด useradd โดยเพิ่ม -s /rbin/menu หรือจะเพิ่มคำสั่ง usermod ไปอีกบรรทัดก็ได้
 
#!/bin/sh
# Powered By apples@chek.com>
# case from http://academic.cmri.ac.th
case $USER in
usernamewasblock ) exit 1;;
esac
while [ 1 ]; do
clear
echo
echo
echo "           SSH service at http://www.isinthai.com"
echo "           Any suggestion send mail to webmaster@isinthai.com "
echo
echo "            1 ) Pine - Email/News Client"
echo "            2 ) Lynx - Text Base Web Browser"
echo "            3 ) Pico - Text Editor"
echo "            4 ) File Manager - Delete, Modify, Change file attribute"
echo "            5 ) ncftp - FTP Program"
echo "            6 ) Telnet -  Remote Login"
echo "            7 ) Change password"
echo
echo "            q ) Log out"
echo "                ================= "
echo "                Restrict shell suggest by apples@chek.com"
echo "                Strong server at http://academic.cmri.ac.th"
echo
echo -n " Select->"
read OPT
case $OPT in
  q | Q ) echo;echo "Bye"; echo; echo; exit 1;;
  2 ) lynx http://www.isinthai.com;;
  1 ) pine;;
  3 ) pico;;
  4 ) lynx -editor=pico $HOME;;
  5 ) ncftp;;
  6 ) telnet;;
  7 ) passwd;;
esac
done
exit 1
 
 |