|
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
|