随着OpenSSH 4.9p1的发布,您不再需要依赖第三方黑客或复杂的chroot设置来将用户限制在其主目录中或让他们访问SFTP服务。
编辑/ etc / ssh / sshd_config(某些发行版上的/ etc / sshd_config)
并设置以下选项:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
确保“匹配”指令位于文件末尾。这告诉OpenSSH sftp组中的所有用户都要被chroot到他们的主目录(%h代表ChrootDirectory命令)
对于您希望chroot的任何用户,使用以下命令将它们添加到sftp组:
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
上面的usermod命令会将用户joe添加到sftp组并将其shell设置为/ bin / false,这样他们绝对无法获得shell访问权限。 chown和chmod命令将为目录设置所需的权限。设置这些权限后,将允许用户上载和下载文件,但不能在根目录中创建目录或文件
Chrooting shell帐户稍微复杂一些,因为它要求在用户的主目录中提供某些设备文件和shell。以下命令将在Mandriva Linux上设置一个非常基本的chroot系统:
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
有了上述内容,用户joe可以ssh in并将限制为chroot。不幸的是,这没什么用,但它让你知道如何设置它。根据您要提供的内容,您需要安装其他库和二进制文件。
创建一个chroot
安装dchroot和debootstrap包。
作为管理员(即使用sudo),为其创建一个新目录
chroot环境。在这个程序中,
目录 /var/chroot
将会被使用。至
这样做,输入 sudo mkdir /var/chroot
进入命令行。
作为一个
管理员,打开 /etc/schroot/schroot.conf
在文本中
编辑。类型 cd /etc/schroot
接下来
通过 gksu gedit schroot.conf
。这将
允许您编辑文件。
添加
以下几行 schroot.conf
和
然后保存并关闭文件。更换 your_username
用你的用户名。
[清醒]
description = Ubuntu Lucid
位置=的/ var / chroot环境
优先级= 3
用户= your_username
基团= sbuild
根的基团=根
打开终端并输入:
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \
http://mirror.url.com/ubuntu/
这将创建一个基本的
'安装'的Ubuntu 10.04(Lucid
Lynx)在chroot。可能需要一个
而对于包裹
下载。注意:您可以替换
清楚你的Ubuntu版本
选择。注意:您必须更改
以上 mirror.url.com
使用的URL
本地有效的归档镜像。一个
现在应该是基本的chroot
创建。类型 sudo chroot /var/chroot
更改为内部的根shell
chroot环境。
设置chroot
那里
是您可以采取的一些基本步骤
设置chroot,提供
DNS解析和
进入 /proc
。
注意:在shell中键入这些命令
这是在chroot外面。
键入以下内容以安装 /proc
chroot中的文件系统(需要
管理流程):
sudo mount -o bind /proc /var/chroot/proc
输入
以下是允许DNS解析
在chroot内(需要
互联网):
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
很少
软件包默认安装在一个
chroot(甚至没有安装sudo)。
使用 apt-get install package_name
至
安装包。