今天在Ubuntu Linux上安装了ProFTPD,遇到一些小麻烦,跟大家share一下。
1. 配置运行ProFTPD的方法
ServerType inetd
# Set the user and group that the server normally runs at.
User nobody
Group nobody
如果ServerType选择了inetd,/etc/init.d/proftpd start,就会报错,因为你选择了inetd运行。
ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration.
若要手动执行ProFTPD, 要把 ServerType 设成 standalone才行。
2. NIS认证
/etc/nsswitch.conf 必须有nis服务
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShells off
必须把NIS Sever传过来的shell信息/usr/local/bin/bash,放在/etc/shells列表才行,否则视为invalid shell。
另外,也可以在/etc/passwd文件中的对应shell的那个field直接进行修改为/bin/bash,则忽略远端传过来的shell信息。
还有一个很重要的设置,
# Uncomment this if you are using NIS or LDAP to retrieve passwords:
PersistentPasswd off
PersistentPasswd 如果设置为on,就只检查/etc/passwd里面的user account,不要用uncomment,要用上述语句,切记!
3. xinet启动ProFTPD
# Set the user and group that the server normally runs at.
User root
Group root
建立/etc/xinetd.d/proftpd,然后编辑如下内容。
service ftp
{
disable = no
flags =REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/proftpd
server_args = -c /etc/proftpd/proftpd.conf
log_on_success += DURATION USERID
log_on_failure += USERID
}
保存之后,chmod +x proftpd
Everything gonna be alright!!!