chroot

1. 简介

chroot是在unix系统的一个操作,针对正在运作的软件进程和它的子进程,改变它外显的根目录。一个运行在这个环境下,经由chroot设置根目录的程序,它不能够对这个指定根目录之外的文件进行访问动作,不能读取,也不能更改它的内容。chroot这一特殊表达可能指chroot(2)系统调用或chroot(8)前端程序。默认情况下我们指的是chroot(8)前端程序。

由chroot创造出的那个根目录,叫做“chroot监狱”(chroot jail,或chroot prison)。

2. 功能

Linux官方MAN手册对chroot命令的定义是: run command or interactive shell with special root directory,即运行命令或者具有指定根目录的交互式shell。基本在所有支持该命令的linux系统中,都需要以超级管理员的权限才可以执行该命令。

3. 常见应用领域

  • 系统修复
  • 系统启动时切换根目录,引导系统启动
  • 特权分离

4. 发展

chroot从1979年诞生至今,已经发展成为支持docker这样的容器的底层技术之一了。
docker约等于chroot+namespace+other。

5. 问题

在openssh的sftp中可能会经常碰到的问题就是用户认证都通过了,但是最终还是会登录失败。在ubuntu系统的auth.log日志中我们能看到类似bad ownership or modes for chroot directory xxx这样的内容,这个就是因为我们把chroot的目录所属的用户设置错了。
/etc/ssh/sshd_config目录中ChrootDirectory后面所接的路径的根目录属主必须是root用户。
当时就是因为这个目录属主设置错误耽误了我两天时间,一直摸不着头脑,从google的很多答案来说都有点儿不匹配,但是看到很多提到了chroot,然后就去看了下chroot的知识,然后做了上述修改后就成功了。

参考链接

  1. http://man7.org/linux/man-pages/man2/chroot.2.html
  2. https://www.ibm.com/developerworks/cn/linux/l-cn-chroot
  3. http://www.gnu.org/software/coreutils/manual/html_node/chroot-invocation.html#chroot-invocation
  4. https://zh.wikipedia.org/wiki/Chroot
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 10,025评论 0 5
  • 需求 普通用户通过ssh登陆到跳板机后,再通过ssh跳转到内网其他服务器。跳板机只提供ssh、ls等基本命令,禁止...
    老夫刘某阅读 4,844评论 0 0
  • chroot简介 chroot,即 change root directory (更改 root 目录)。在 li...
    孤逐王阅读 4,850评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,323评论 0 10
  • 1、windows版 原本是在我的阿里云服务器上安装,但是可能因为我服务器内存太小的原因一直安装失败,就先安装在本...
    阿亮私语阅读 10,000评论 3 3

友情链接更多精彩内容