OpenBSD自带ftpd程式搭建ftp服务器
来源:互联网
作者:west263.com
时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
或在未将他们加入到/etc/shells的情况下,在使用adduser添加帐户时加上"-shell"参数:
# adduser -shell /sbin/nologin
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:
......
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:
......
这里在询问该用户使用何种shell时就出现了/sbin/nologin 。假如不带这个参
数,将无法使用他:
# adduser
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [bash]: /sbin/nologin
/sbin/nologin: is not allowed!
Enter shell bash csh ksh nologin sh [bash]:
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [bash]: /sbin/nologin
/sbin/nologin: is not allowed!
Enter shell bash csh ksh nologin sh [bash]:
这里就提示了不允许使用/sbin/nologin 做为shell使用。
添加帐户
这里使用"adduser -s shell /sbin/nologin"来添加一个这样的'ftp'帐户做为示例,并将该用户的$HOME目录配置为"/var/ftp":
# adduser -shell /sbin/nologin -home /var
Use option \-silent" if you don't want to see all warnings and questions.
Reading /etc/shells
Check /etc/master.passwd
Check /etc/group
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:ENTER
Uid [1001]:ENTER
Login group ftp [ftp]:ENTER
Login group is \ftp". Invite ftp into other groups: guest no
no
: ENTER
Login class daemon default sta. [default]:ENTER
Enter password []: ENTER # 在此直接按ENTER键。
Use option \-silent" if you don't want to see all warnings and questions.
Reading /etc/shells
Check /etc/master.passwd
Check /etc/group
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username []: ftp
Enter full name []: anonymous ftpd user
Enter shell bash csh ksh nologin sh [/sbin/nologin]:ENTER
Uid [1001]:ENTER
Login group ftp [ftp]:ENTER
Login group is \ftp". Invite ftp into other groups: guest no
no
: ENTER
Login class daemon default sta. [default]:ENTER
Enter password []: ENTER # 在此直接按ENTER键。
这样就能够配置一个不可用的密码。
Set the password so that user cannot logon? (y/n) [n]: y
Name: ftp
Password: ****
Fullname: anonymous ftpd user
Uid: 1001
Gid: 1001 (ftp)
Groups: ftp
Login Class: default
HOME: /var/ftp
Shell:
OK? (y/n) [y]: y
Added user \ftp"
Copy ˉles from /etc/skel to /var/ftp
Add another user? (y/n) [y]: n
Goodbye!
#
到这里,添加用户的工作就完成了。还需要把系统从'/etc/skel' 复制到$HOME目录的一些"dot ˉles"给删除,以免暴露信息。'dot ˉles'的第一行通常会有一些系统的信息,比如' /.cshrc'文档中就有这么一句:
# $OpenBSD: dot.cshrc,v 1.5 2005/02/16 06:56:57 matthieu Exp $
这至少就告诉了匿名登录的用户,这是个OpenBSD系统。所以建议把他们删除:
# rm -f /var/ftp/.*
为FTP目录配置正确的权限
1、'ftp'目录
"ftp"目录表示"ftp"用户的主目录,在本例中就是"/var/ftp"目录。将他的owner配置为"root",权限配置为任何人都不可写(555):
# chown -R root:wheel /var/ftp
# chmod -R 555 /var/ftp
# chmod -R 555 /var/ftp
2、'ftp/bin'目录
这个目录并不是必须的。假如希望匿名用户登录到FTP后能够执行一些command,就能够将command 复制到这个目录下。任何的command的权限都应该配置为只允许执行(111)。
# mkdir /var/ftp/bin
# chown -R root:ftp /var/ftp/bin
# chmod -R 111 /var/ftp/bin/*
# chown -R root:ftp /var/ftp/bin
# chmod -R 111 /var/ftp/bin/*
3、'ftp/etc'目录
和"ftp/bin"目录相同,这也是个可选的,并不推荐创建他。(更多关于该目录配置的信息请查看"ftpd" 的man文档)。
4、'ftp/pub"目录
这个目录用来存放您希望被匿名用户访问的文档。权限应该配置为555。
# chown -R root:ftp /var/ftp/pub
# chmod -R 555 /var/ftp/pub
# chmod -R 555 /var/ftp/pub
这里虽然提到了创建三个目录,但是实际上我们只需要创建' ftp/pub'目录并配置好权限就能够了。
chroot匿名登录的用户
'ftpd'会将'/etc/ftpchroot'文档中列出的用户都chroot。要使'ftp'用户在登录ftp后被chroot,只需要简单地把用户名添加到这个文档中就能够了。这是个示例文档:
# file: /etc/ftpchroot
# $OpenBSD: ftpchroot,v 1.3 1996/07/18 12:12:47 deraadt Exp $
##
list of users (one per line) given ftp access to a chrooted area.
# read by ftpd(8).
ftp
bibby
# $OpenBSD: ftpchroot,v 1.3 1996/07/18 12:12:47 deraadt Exp $
##
list of users (one per line) given ftp access to a chrooted area.
# read by ftpd(8).
ftp
bibby
'ftpd'在启动时会读取这个文档,假如'ftp'和'bibby'这两个用户登录ftp,将被分
别chroot到自己的$HOME目录下。
其他一些相关文档
· /etc/ftpusers { 列出了任何不受欢迎的用户。列在该文档中的用户都无法
登录ftp服务器。
· /etc/ftpwelcome { 欢迎信息。登录的用户都将在登录时看到这一信息。
· /etc/motd { 假如'/etc/ftpwelcome'文档不存在,则使用'/etc/motd'文档的内容做为欢迎信息。
2 .message { 这个文档能够被放置在' ftp'目录下的任何一个子目录中。用户进入该目录时就会显示这个文档中的内容。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



