linux 容器(LXC) 第2章 chroot

转:https://blog.csdn.net/caoshuming_500/article/details/51682765

1.  linux chroot 机制的由来

  • root 用户启动一个daemon

在linux 系统上启动一个daemon 必须用root 用户来启动,比如一个web 服务器(nginx/apapce 80端口)是在操作系统的接口(1-1024),只有root 有这个权限来启动这类接口;用root 户启动daemon 的程序也被认为是一个自然的事情。 

  • 安全问题日益变大

随着安全的攻击越来越严重,如果任何一个提供TCP 服务的程序出现漏洞,那攻击者就获取到了root 权限,无疑是灾难性的。为了降低这个问题带来的风险,现在几乎所有的用户程序都是 用root 用户启动程序,然后主动放弃root 权限,该用一个普通的用户(比如 admin/nobody) 进行运行。    这样一旦攻击者获取到了这个程序的权限,也是此时运行用户的权限,不是root 权限对系统造成的危害相对要小了许多

  • chroot 机制的引入

为了进一步提高系统的安全性,linux 系统引入了chroot 机制;chroot 是一个系统调用,程序可以通过调用chroot的函数库来更改一个进程所能看到的跟目录  。比如httpd 软件安装在/usr/local/httpd 这个目录下,那这个进程(httpd) 只可以读、写到这个指定的目录: [usr/local/httpd] ;这样即使攻击者获取进程的权限,也只能读写这个目录下的文件,这样就变的安全了许多,起码不会影响这个台机器其他的进程,和其他的机器的安全问题

2. chroot 简介

chroot 全程是change to root : 其中root 是根目录的意思,也就是改变(linux 根目录是/,也可以理解为设置)一个程序运行时参考的根目录的位置

 
  1. # 根目录的参考

  2. linux 系统(原始的方案) | 引入chroot 机制

  3. / /lxc

  4. /usr /lxc/usr

  5. /bin /lxc/bin

  6. /sys /lxc/sys


如上图我们看的一旦使用了chroot ,用户的春心就不是linux 系统的根目录,而是我们指定的/lxc (这个目录可以任意指定),所以chroot 确实可以修改根目录.


3. chroot 机制的意义

  • 增强系统的安全行
  • 指定程序访问的根目录,防止用攻击者可以通过程序的漏洞获取其他目录的读写权限;比如/etc/passwd 比如/ 下所有的权限

4. chroot 机制在虚拟化中的作用

chroot 机制因为安全问题才被引入的,但是在LXC 中却启动了举足轻重的作用,因为chroot 机制可以指定虚拟根目录,让不同的容器在不同的根目录下工作;

  • 不同的容器进程参考的根目录不同,相互直接不影响
  • 不同的容器因为共享linux 底层的文件系统,所以容器集成os的功能,实现轻量级!

猜你喜欢

转载自blog.csdn.net/caofengtao1314/article/details/81381353
今日推荐