你所做的本质是创建一个骨架根文件系统,其中包含必要的组件,二进制文件、密码文件等,以允许 Unix 在用户登录时执行 chroot。请注意,如果在编译期间使用--enable-ls选项(如上所示),则/home/ftp/bin和/home/ftp/lib目录不是必需的,因为这个新选项允许 Wu-ftpd 使用自己的ls功能。我们仍然继续演示旧方法,供那些喜欢复制/bin/ls到 chroot 目录FTP的用户使用,/home/ftp/bin并创建与ls.
首先,创建所有必要的 chroot 环境目录,如下所示
[root@deep ] /# mkdir /home/ftp/dev [root@deep ] /# mkdir /home/ftp/etc [root@deep ] /# mkdir /home/ftp/bin |
将新目录的权限更改为0511出于安全原因:chmod 命令将使我们的 chrootdev, etc, bin和lib目录可由超级用户读取和执行root并可由用户组和所有用户执行。
[root@deep ] /# chmod 0511 /home/ftp/dev/ [root@deep ] /# chmod 0511 /home/ftp/etc/ [root@deep ] /# chmod 0511 /home/ftp/bin |
复制/bin/ls二进制文件到/home/ftp/bin目录并更改ls程序的权限为0111。您不希望用户能够修改二进制文件
[root@deep ] /# cp /bin/ls /home/ftp/bin |
查找lsLinux 二进制程序
[root@deep ] /# ldd /bin/ls |
libc.so.6 => /lib/libc.so.6 (0x00125000) /lib/ld-linux.so.2 =7gt; /lib/ld-linux.so.2 (0x00110000) |
的共享库依赖项lib将上面标识的共享库复制到您的新/home/ftp目录下的
[root@deep ] /# cp /lib/libc.so.6 /home/ftp/lib/ |
![]() |
目录ls这些库是使ls工作所必需的。此外,仅当您想使用--enable-lsLinux 二进制程序而不是使用ls选项时才需要上述步骤 3 和 4,该选项使用 Wu-ftpd 的新内部 |
功能。创建您的/home/ftp/dev/null
[root@deep ] /# mknod /home/ftp/dev/null c 1 3 [root@deep ] /# chmod 666 /home/ftp/dev/null |
复制文件组和passwd文件在/home/ftp/etcFTP目录中。这应该与您的真实文件不同。因此,我们将删除除了超级用户root之外的所有非和组文件.
[root@deep ] /# cp /etc/passwd /home/ftp/etc/ [root@deep ] /# cp /etc/group /home/ftp/etc/ |
用户在这些文件中的条目。和编辑文件,vi/home/ftp/etc/passwdroot并删除除超级用户FTP和您允许的和用户之外的所有条目。chroot 环境中的
root:x:0:0:root:/:/dev/null ftpadmin:x:502:502::/ftpadmin/:/dev/null |
: 我们这里可以注意到两点:首先,此修改后的和文件中所有用户的 home 目录现在都已更改,以反映新的 chrootFTP目录,即/home/ftp/./ftpadmin/开始/ftpadmin/, 并且,root帐户的用户登录 shell 名称已更改为/dev/null.
用户在这些文件中的条目。文件编辑/home/ftp/etc/group/home/ftp/etc/passwdroot和所有您允许的FTP用户。文件文件应与您的普通组文件对应
root:x:0:root ftpadmin:x:502: |
现在,我们必须设置 chroot jail 目录中的和和文件文件为不可变的,以获得更好的安全性。
[root@deep ] /# cd /home/ftp/etc/ [root@deep ] /# chattr +i passwd |
在文件/home/ftp/dev/null
[root@deep ] /# cd /home/ftp/etc/ [root@deep ] /# chattr +i group |
上一页 | 主目录上设置不可变位 | 下一页 |
设置一个FTP没有 shell 的用户帐户 | 向上 | 配置 |