CHROOT就是ChangeRoot,也就是改变程序执行时所参考的根目录位置。CHROOT可以增进系统的安全性,限制使用者能做的事。
目录架构
bin
sbin
usrbin
home
或
hell
hellbin
hellusrbin
hellhome
作用
1。限制被CHROOT的使用者所能执行的程式,如SetUid的程式,或是会造成Load的Compiler等等。
2。防止使用者存取某些特定档案,如etcpasswd。
3。防止入侵者binrmrf。
4。提供Guest服务以及处罚不乖的使用者。
5。增进系统的安全。
建立环境
1。chroot()这个function:
chroot(PATH)这个function必须具有root的身份才能执行,执行后会将根目录切换到PATH所指定的地方。
2。login的过程:
使用者无论是从console或是telnet进入,都必须执行usrbinlogin来决定是否能进入系统,而login所做的动作大致是:
(1)印出login的提示符号,等待使用者输入密码。
(2)检查密码是否正确,错误的话回到(1)。
(3)正确的话以setuid()来改变身份为loginuser。
(4)以exec()执行user的shell。
因此我们必须先修改usrbinlogin的sourcecode,让login在(2)到(3)的中间执行chroot(CHROOTPATH)的动作,已达到CHROOT的目的,并以修改过的login替代原先的usrbinlogin。
(5)稍微好一点的方法必须在做chroot()之前检查loginuser的group,如果有某个特定的group(如ch...
(全文)