rbash กับ sftp

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook




dpkg-reconfigure scponly

เมื่อวานพยายามจะเซ็ต account ในลินุกซ์ให้คนใช้ upload/download ด้วย sftp. ปรกติถ้าเป็น user ธรรมดาเวลาล็อกอินเข้ามาด้วย sftp จะสามารถเปลี่ยนไดเรกทอรีที่อยู่เหนือโฮมไดเรกทอรีของตัวเองด้วย. ก็เลยทำให้นึกถึง restrict bash ซึ่งถ้าเซ็ตให้เป็นเชลล์ของ user นั้นแล้วก็จะจำกัดการใช้งานต่างๆได้เช่น ไม่สามารถเปลี่ยนไดเรกทอรีไปที่อื่นนอกจากโฮมไดเรกทอรีของตัวเอง ฯลฯ.

วิธีเปลี่ยนเชลล์ให้ user ก็อาจจะทำได้ตั้งแต่ใช้คำสั่ง vipw คือแก้ไฟล์ /etc/passwd ด้วย vi. แต่จะให้ดีก็ใช้คำสั่งที่เตรียมไว้ให้แล้วเช่น usermod ตามตัวอย่างที่เปลี่ยนเชลล์ล็อกอินของ somchai ให้เป็น /bin/rbash

# usermod -s /bin/rbash somchai

ก็นึกว่าจะใช้ sftp จากเครื่องไคลเอ็นต์เข้ามาได้ แต่ปรากฏว่าพอใส่รหัสผ่านเสร็จก็ถูกตัดออกจากระบบเลย.

$ sftp somchai@colinux
Connecting to colinux...
Password:
Connection closed

แต่ถ้าใช้ scp จะไม่โดนตัด. ทีนี้ก็พยายามจะทำให้มันเข้าได้ด้วย sftp ก็ได้ค้นหาข้อมูลเพิ่มเติมพบว่าคงต้องใช้เชลล์อื่นๆเช่น scponly หรือ rssh. คราวนี้ได้ลองใช้ scponly ให้เป็นเชลล์ของยูสเซอร์นั้น. ใช้เดเบียนก็สะดวกดีสั่ง

# apt-get install scponly

เสร็จแล้วจะมีให้ configure ตัว scponly ให้มันรองรับ chroot ด้วย. มันจะทำให้โปรแกรม /usr/sbin/scponlyc เป็นโปรแกรมแบบ suid ซึ่งไม่ค่อยดีนักแต่ก็อยากจะให้เวลาคนที่ใช้ sftp อยู่ในไดเรกทอรีของตัวเองเท่านั้น.

เปลี่ยนเชลล์ให้ยูสเซอร์

# usermod -s /usr/bin/scponly somchai

จบเสร็จแล้วก็ scp หรือ sftp ได้อย่างเดียวและ sftp แล้วก็อยู่ในโฮมไดเรกทอรีนั้นไม่สามารถไปที่อื่นได้.

ลองใช้ rssh ด้วยเหมือนกันและรู้สึกจะตั้งค่าอะไรได้ละเอียดกว่า scponly.

Comments: blogger