chroot

作者: 西伯利亚狼_ | 来源:发表于2018-12-23 23:34 被阅读8次

    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

    相关文章

      网友评论

          本文标题:chroot

          本文链接:https://www.haomeiwen.com/subject/ubiokqtx.html