network-ftp-limits.html
来自「学习linux的工具书」· HTML 代码 · 共 94 行
HTML
94 行
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Author" content="Edward Fu">
<meta name="GENERATOR" content="Mozilla/4.05 [zh-CN] (X11; I; Linux 2.1.127 i686) [Netscape]">
<title>Freesoft Linux FAQ -- 限制ftp用户的访问目录</title>
</head>
<body>
> 我急需知道 ftp时将用户限制在自家目录下的方法,
<br>> 我用的是REDHAT5.1,据说chroot可以做到,但我不知道具体做法,
<p>1 创建一个ftp guest组,用groupadd命令,通常就用ftp组(less /etc/group看看是否存在,
<br> 如果装了ftp server的话都有)。
<br>2 把这个用户加入到这个组中
<br>3 修改/etc/ftpaccess文件,加入guestgroup的定义: guestgroup ftp
<br>4 向这个用户的$HOME目录下拷贝必要的文件,主要是与ls有关的。一般的ls要Lib支持,你得
<br> 重新编译ls,或把lib目录copy过去.或者拷贝ftp server带的ls,比如把/home/ftp/下的bin,
<br> etc,lib三个目录拷贝到这个用户的根目录下,并修改权限(chown username.ftp
*)。有些ftp
<br> 无须拷贝这些文件。
<br>相关信息:
<br>man ftpaccess 仔细阅读guestgroup这一项
<br>man chroot
<br>
<p>发信人: samuel (SAM), 信区: Linux
<br>标 题: ftp限制用户访问目录的问题
<br>发信站: 广州网易BBS站 (Wed Oct 14 16:52:10 1998), 转信
<p>最近有很多人提到需要限制ftp用户的访问目录.
<br>现在我做了一个程序来解决这个问题.
<p>文件 <a href="ftp://studio.sinet.net.cn/pub/misc/">ftp://studio.sinet.net.cn/pub/misc/homewrapper-alpha.tar.gz</a>
<p>使用:
<br>1. 目前只能在RedHat下使用
<br>2. 解开后把homewrapper.so, homewrapper.conf拷到/etc下
<br>3. 如果你想重新编译的话, 用"make clean; make"
<br>4. 修改/etc/homewrapper.conf, 把允许访问但不在限制目录
<br> (如不在登录目录)下的文件清单加到该文件中
<br>5. 修改inetd.conf,用save.ftpd替代in.ftpd. save.ftpd在压缩包里.
<p>save.ftpd内容:
<br>#!/bin/sh
<br>LD_PRELOAD=/etc/homewrapper.so
<br>HOMEWRAP_PREFIX=\~/public_html
<br>export LD_PRELOAD HOMEWRAP_PREFIX
<br>#HOMEWRAP_DEBUG=1
<br>#HOMEWRAP_LOGFILE=/tmp/homewrapper.log
<br>#HOMEWRAP_ROOT=0
<br>#export HOMEWRAP_DEBUG HOMEWRAP_ROOT HOMEWRAP_LOGFILE
<br>exec /usr/sbin/in.ftpd $*
<p>其中HOMEWRAP_ROOT=1时对root用户也作限制.否则root允许访问所有文件.
<br>
<p>由于wu-ftpd的bug:
<br>在调用initsetproctitle前错误的使用setproctitle,可能导至homewrapper无法工作.
<br>解决办法:
<br>1. 修改wu-ftpd source,把调用initsetproctitle前的dolog(&addr)掉用移到后面.
<br>2. 也可使用HOMEWRAP_MOVEENV开关来对付此bug.
<p>: : : : 我下载homewrapper 在redhat5.1上安装后,用户ftp登陆后出现
<br>: : : : 错误提示
<br>: : : : can't change directory /home/是不是我的安装有错,或是设置问题。望能详细告之!
<br>: : : 如果使用save.ftpd应该没有问题
<br>: : : 不能chdir到home是因为home在你许可的目录之外:
<br>: : : 1. PREFIX不是以~打头,并设到home以下/以外.
<br>: : : 主要有些shell要在~前加"\"防止赋值时扩展.
<br>: : : 2. 并且没有设REMAP_HOME, 如果使用REMAP_HOME功能,
<br>: : : 系统会把HOME定向到许可目录之下的.
<br>: : :
<br>: : 现在可以限制用户home目录了,但是用户ftp上来后无法看到自己的文件,
<br>: : 望samuel兄指点一下,最好能详细讲述一下安装步骤。万分谢谢!
<br>: 对不起, 有一点我忘了, 你要建一个文件/etc/homewrapper.conf
<br>: 里面时一些允许访问的文件清单(以/结尾允许整个目录访问).
<br>: /bin/sh
<br>: /bin/ls
<br>: /dev/null
<br>: /etc/group
<br>: /etc/localtime
<br>: /etc/nsswitch.conf
<br>: /etc/passwd
<br>: /etc/termcap
<br>: /etc/homewrapper.so
<br>: /etc/homewrapper.conf
<br>: /etc/hosts
<br>: /lib/libnsl.so.1
<br>: /lib/libnss_compat.so.1
<br>: /lib/libnss_dns.so.1
<br>: /lib/libnss_files.so.1
<br>: /lib/libnss_nis.so.1
<br>: /lib/libnss_nisplus.so.1
<br>: /lib/libpam.so.0
<br>: /lib/libpam_misc.so.0
<br>: /usr/lib/terminfo/
<br>:
<br>谢谢SAM兄,现在已经搞定。
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?