Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1527415
  • 博文数量: 329
  • 博客积分: 2773
  • 博客等级: 少校
  • 技术积分: 4219
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:17
个人简介

淡定从容,宁静致远

文章分类

全部博文(329)

文章存档

2016年(4)

2015年(50)

2014年(68)

2013年(45)

2012年(162)

分类: LINUX

2012-10-18 17:19:41

CHROOT就是Change Root,也就是改变程式执行时所参考的根目录位置。
一般的目录架构:
  /bin
  /sbin
  /usr/bin
  /home
CHROOT的目录架构:
  /hell/
  /hell/bin
  /hell/usr/bin
  /hell/home
为何要CHROOT?
  1.限制被CHROOT的使用者所能执行的程式,如SetUid的程式,或是会造成 Load 的Compiler等等。
  2.防止使用者存取某些特定档案,如/etc/passwd。
  3.防止入侵者/bin/rm -rf /。
  4.提供Guest服务以及处罚不乖的使用者。
  5.增进系统的安全。
要如何建立CHROOT的环境?
  1.chroot()这个function:
  chroot(PATH)这个function必须具有 root的身份才能执行,执行後会将跟目录切换到PATH 所指定的地方。
  2.login的过程:
  使用者无论是从console或是telnet进入,都必须执行/usr/bin/login来决定是否能进入系统,而login所做的动作大致是:
  (1)印出login的提示符号,等待使用者输入密码。
  (2)检查密码是否正确,错误的话回到(1)。
  (3)正确的话以setuid()来改变身份为login_user。
  (4)以exec()执行user的shell。
  因此我们必须先修改/usr/bin/login的source code,让login在(2)到(3)的中间执行chroot($CHROOT_PATH)的动作,已达到CHROOT的目的,并以修改过的login 替代原先的/usr/bin/login。
  (5)稍微好一点的方法必须在做chroot()之前检查login user的group,如果有某个特定的group(如chrootgrp)才执行chroot(),不然所有的人都会被chroot了。
阅读(4204) | 评论(0) | 转发(0) |
0

上一篇:Signal参数说明

下一篇:linux 默认语言

给主人留下些什么吧!~~