一直为不能吧ftp用户限制在自己的目录伤脑筋,这两天到处找资料看,问网友自己试验,总算成功了,写出来大家看看吧。
首先要d个wu-ftp咯!我在做的过程中发现wu-ftp的版本不同,做出来的效果也不同。
例如 /ftp/--->user1
--->user2
---〉user3
用wu-ftp2.4做的时候,要在每个用户的目录下例如是/ftp/user1/...建立etc.bin.dev.usr几个目录,才能把用户限制在自己的目录里,并且能正常显示出目录内容。
而用wu-ftp2.6做的时候,只需要在/ftp下建立etc.bin.dev.usr就可以把达到目的了。不过不知道是不是我做的有什么地方不对,导致这种差异,谁知道的告诉我!
好啦,d好软件,就直接编译一下,
在/etc/inetd.conf里把原先的in.ftpd用生成的ftpd代替,后面要加个-a参数哦,表示读取配置文件(好像是这个意思)
接下来要编辑ftpaccess文件。(其实都有模版的,只要照着需要改一下就可以了)
class user guest,real,anonymous(名字随便取)
real表示server上真实的用户,也就是passwd里有的用户
anonymous表示匿名用户,这个不用说了吧?
guest可以自定义。如果你不做anonymouse ftp最好把其他的去掉,只留这个
我个人认为。
guestgroup ftpuser
定义guest用户的范围。就是server里属于ftpuser这个组的用户都是guest用户。
restricted-uid *
这一句好重要,限制了guest用户在自己的目录里。
其他的看着模版作。然后存盘就可以了!这个时候应该就已经可以限制住用户了,但是用户登陆上来以后,看不到自己的目录内容,也就是ls用不了。
这时就要mkdir上面那几个目录了,usr,dev,bin,etc 具体位置就是上面说的了!
几个目录的内容如下:
~/etc: TIMEZONE* group netconfig passwd
~/dev: null tcp ticotsord udp zero(得拥mknod命令作)
~/bin: ls*
~/usr: bin(ln -s ../bin) lib/(目录) share/(目录)
~/usr/lib: ld.so* ld.so.1* libc.so* libc.so.1*
libdl.so* libdl.so.1* libintl.so* libintl.so.1*
libmp.so* libmp.so.1* libnsl.so* libnsl.so.1*
libw.so* libw.so.1* libsocket.so* libsocket.so.1*
nss_dns.so.1* nss_files.so.1* nss_nis.so.1*
nss_nisplus.so.1* straddr.so* straddr.so.2*
(拷贝这些文件时,非常容易死机,我也不知道为什么,最好用光盘启动系统,从光盘上拷)
~/usr/share/lib/zoneinfo: GMT-8 US/(目录)
长长的一串目录照建阿!
~/usr/share/lib/zoneinfo/US: Pacific
好了,在ftp下或者ftp/userXX下建立相应的目录,并从系统相同的目录下拷贝相应的文件进这些目录就可以了!保持目录结构和属性。
最后还要修改/etc/passwd文件
在passwd文件的标示用户主目录的域改一下,例如:
mail:x:1001:100::/aquser/mail:/bin/sh(原来的)
用wu-ftpd2.4的改称:
mail:x:1001:100::/aquser/mail/./:/bin/sh
用wu-ftpd2.6的改称:
mail:x:1001:100::/aquser/./mail:/bin/sh