看到有网友讲SCO的ftp采用的是wu-ftp一种由于以前在小型机上曾用过wu-ftp限制过用户登录目录,所以就尝试了一下SCO下的做法,现总结一下,提供给大家参考:
1、修改/etc/passwd,把需要限制的用户的根目录后加上/./
例如:原来的目录为/usr/test, 那么改成/usr/test/./
看起来改后的/etc/passwd该用户的内容像这样子:
test:x:215:50::/usr/test/./:/bin/sh
2、建立并修改相关文件
登录进入root帐户
# su - test(你的用户名)
$ mkdir bin
$ cp /bin/ls bin
$ mkdir lib
$ cp /lib/libprot.so.1 lib
$ mkdir -p usr/lib
$ cp /usr/lib/libc.so.1 usr/lib
$ cp /usr/lib/libsocket.so.1 usr/lib
$ mkdir etc
$ cp /etc/passwd etc
$ cp /etc/group etc
$ cd etc
$ vi passwd 把不用ftp的用户都删了
$ vi group 把不用ftp的组都删了
# exit 退回到root用户
# cd /etc
# vi inetd.conf
找到ftp那行,首先确认行首没有被#号注释掉,然后在末尾加上-a
看起来修改后的inetd.conf中ftp那行内容像这个样子:
ftp stream tcp nowait root /etc/ftpd ftpd -a
存盘退出激活inetd.conf参数:
# ps -e | grep inetd 记下inetd的进程号
# kill -HUP inetd进程号
# vi ftpaccess
找有无guestgroup的行,
有则先确认行首无#号后把test用户的组名(你的用户所属的组名)加上,用空格分隔名字
无则加上一行,看起来像这个样子:
guestgroup group(你用户的组名)
x!强制存盘退出(该文件默认方式是只读)
建议给此类ftp的用户单独建立一个组,以便日后的安全设置
3、对于不想用户修改内容的目录或文件,把写权限用chmod -w 去掉即可
对于不想用户取走的文件或不想用户访问的目录,chmod -r把读权限去掉
4、如果想让test用户只能ftp不能telnet,
那么现在可以开始做相应的修改了:
首先/etc/shells里加入一行/bin/false后:
/etc/shells文件内容实例:
#
/bin/csh
/bin/sh
/bin/ksh
/usr/bin/scosh
/bin/false #加入是为了让/bin/false成为系统认可的shell, 无则ftp会提示错误
然后再把/etc/passwd该用户的shell改为/bin/false即可
看起来修改后的/etc/passwd该用户的内容像这个样子:
test:x:215:50::/usr/test/./:/bin/false
到这里就可以进行测试了。