p.s. lnmp方式安装的proftpd,默认情况好像可以使用系统用户来访问,后来想用虚拟用户方式来访问ftp,网上查了下发现需要下载ftpasswd来辅助操作生成账号,系统账号的系统账户可以随便弄一个 5000:5000,然后把ftp用户home的own设为5000:5000。
配置文件中 AuthOrder为FTP用户身份验证顺序,mod_auth_file.c是ProFTPD的虚拟用户验证,mod_auth_unix.c是系统用户验证,即/etc/passwd 。
遇到问题可以查看日志文件 /usr/local/proftpd/var/log/proftpd.log ,利用好日志事半功倍。
ftpasswd 使用方法例子
需要注意的是:被动连接的端口需要防火墙里面设置好,不仅iptablse里面设置,阿里云的安全组里面也不能忘记。
ServerName "ProFTPD FTP Server"
ServerType standalone
DefaultServer on
# Port 21 is the standard FTP port.
Port 21
# Don't use IPv6 support by default.
UseIPv6 off
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
MaxInstances 30
# Set the user and group under which the server will run.
User nobody
Group nobody
#被动连接的端口,需要防火墙iptablse和阿里云安全组里面通过
PassivePorts 52000 52100
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
UseReverseDNS off
IdentLookups off
#DisplayLogin welcome.msg
ServerIdent off
RequireValidShell off
#下面的是虚拟用户文件,如果不存在会去使用系统用户
AuthUserFile /usr/local/proftpd/etc/ftpd.passwd
#AuthGroupFile /usr/local/proftpd/etc/ftpd.group
#AuthOrder为FTP用户身份验证顺序。mod_auth_file.c是ProFTPD的虚拟用户验证,虚拟用户和组的信息存储在下面的AuthUserFile和AuthGroupFile指定的文件中,不过我想搞简单点所以就不要虚拟组了。mod_auth_unix.c是系统用户身份验证,即/etc/passwd。
AuthOrder mod_auth_file.c mod_auth_unix.c
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
DenyAll
</Limit>
SystemLog /usr/local/proftpd/var/log/proftpd.log
Include /usr/local/proftpd/etc/vhost/*.conf
====================================================================================
参考1: Proftp设置虚拟用户
====================================================================================
首先在proftpd.conf中添加:
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /usr/local/etc/ftpd.passwd
#AuthGroupFile /usr/local/etc/ftpd.group
然后重启portftpd服务
service proftpd restart
AuthOrder为FTP用户身份验证顺序。mod_auth_file.c是ProFTPD的虚拟用户验证,虚拟用户和组的信息存储在下面的AuthUserFile和AuthGroupFile指定的文件中,不过我想搞简单点所以就不要虚拟组了。mod_auth_unix.c是系统用户身份验证,即/etc/passwd。
然后使用添加如下命令添加一个新的虚拟用户:
ftpasswd --passwd --file=/usr/local/etc/ftpd.passwd --name=test --uid=1002 --home=/usr/local/ftp/test --shell=/usr/sbin/nologin
–passwd指定建立一个新的虚拟用户,–group则建立一个虚拟组;
–file指定存储虚拟用户的文件;
–name指定此虚拟用户的用户名,密码会在命令执行时要求输入;
–uid指定此虚拟用户对应的系统用户UID,此虚拟用户将以此系统UID的身份读写文件;
–home指定此虚拟用户的根目录,就是其登陆FTP后的根目录;
–shell指定此虚拟用户的shell,为了安全当然指定一个不可登陆的shell了。
如果是源码安装的proftpd ,服务项proftpd以及命令ftpasswd分别在如下两个目录
ftpasswd :源码包目录/contrib/ftpasswd
proftpd服务程序:源码包目录/contrib/dist/rpm/proftpd.init.d
加上可执行权限。然后将ftpasswd 拷贝到/usr/local/sbin目录下面
将proftpd.init.d拷贝到/etc/init.d/下面 重命名为proftpd
====================================================================================
参考2: proftpd使用虚拟用户连接
====================================================================================
下文参考:https://www.cnblogs.com/as278257357/p/7339137.html
yum 安装proftpd
yum -y install proftpd
修改配置文件/etc/proftpd.conf
全部配置文件参数
安装ftpasswd
创建虚拟用户
ftpasswd --passwd --name test --file /etc/ftpd.passwd --uid 5000 --gid 5000 --home /var/ftp/username-home/ --shell /usr/sbin/nologin
这步操作之后ftp.passwd这个文件的权限会设置为444,所以重启proftpd服务会失败
最后重点来了,怎么设置用户的权限呢,如果不能设置文件的权限为777,那么就要给虚拟用户类似真实用户的权限
创建用户时候设置uid 为5000,那么我们可以将/ftp下创建一个test文件夹,这个文件夹的属主设置为5000,这样这个test账号就可以对test文件夹做任何操作了
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2503
配置文件中 AuthOrder为FTP用户身份验证顺序,mod_auth_file.c是ProFTPD的虚拟用户验证,mod_auth_unix.c是系统用户验证,即/etc/passwd 。
遇到问题可以查看日志文件 /usr/local/proftpd/var/log/proftpd.log ,利用好日志事半功倍。
ftpasswd 使用方法例子
ftpasswd --help
ftpasswd --passwd --name ftpuser1 --file /usr/local/proftpd/etc/ftpd.passwd --uid 5000 --gid 5000 --home /home/wwwroot/ftpuser/ --shell /usr/sbin/nologin
ftpasswd --passwd --name=bob --uid=1001 --home=/home/bob --shell=/bin/false
ftpasswd --passwd --file=/usr/local/etc/ftpd/passwd --name=bob --uid=1001 --home=/home/bob --shell=/bin/false
ftpasswd --group --name=group-name --gid=group-id --member=user-member1 --member=user-member2 ... --member=user-memberN
ftpasswd --passwd --name=user --change-password
ftpasswd --passwd --name ftpuser1 --file /usr/local/proftpd/etc/ftpd.passwd --uid 5000 --gid 5000 --home /home/wwwroot/ftpuser/ --shell /usr/sbin/nologin
ftpasswd --passwd --name=bob --uid=1001 --home=/home/bob --shell=/bin/false
ftpasswd --passwd --file=/usr/local/etc/ftpd/passwd --name=bob --uid=1001 --home=/home/bob --shell=/bin/false
ftpasswd --group --name=group-name --gid=group-id --member=user-member1 --member=user-member2 ... --member=user-memberN
ftpasswd --passwd --name=user --change-password
需要注意的是:被动连接的端口需要防火墙里面设置好,不仅iptablse里面设置,阿里云的安全组里面也不能忘记。
ServerName "ProFTPD FTP Server"
ServerType standalone
DefaultServer on
# Port 21 is the standard FTP port.
Port 21
# Don't use IPv6 support by default.
UseIPv6 off
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
MaxInstances 30
# Set the user and group under which the server will run.
User nobody
Group nobody
#被动连接的端口,需要防火墙iptablse和阿里云安全组里面通过
PassivePorts 52000 52100
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
UseReverseDNS off
IdentLookups off
#DisplayLogin welcome.msg
ServerIdent off
RequireValidShell off
#下面的是虚拟用户文件,如果不存在会去使用系统用户
AuthUserFile /usr/local/proftpd/etc/ftpd.passwd
#AuthGroupFile /usr/local/proftpd/etc/ftpd.group
#AuthOrder为FTP用户身份验证顺序。mod_auth_file.c是ProFTPD的虚拟用户验证,虚拟用户和组的信息存储在下面的AuthUserFile和AuthGroupFile指定的文件中,不过我想搞简单点所以就不要虚拟组了。mod_auth_unix.c是系统用户身份验证,即/etc/passwd。
AuthOrder mod_auth_file.c mod_auth_unix.c
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
DenyAll
</Limit>
SystemLog /usr/local/proftpd/var/log/proftpd.log
Include /usr/local/proftpd/etc/vhost/*.conf
====================================================================================
参考1: Proftp设置虚拟用户
====================================================================================
首先在proftpd.conf中添加:
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /usr/local/etc/ftpd.passwd
#AuthGroupFile /usr/local/etc/ftpd.group
然后重启portftpd服务
service proftpd restart
AuthOrder为FTP用户身份验证顺序。mod_auth_file.c是ProFTPD的虚拟用户验证,虚拟用户和组的信息存储在下面的AuthUserFile和AuthGroupFile指定的文件中,不过我想搞简单点所以就不要虚拟组了。mod_auth_unix.c是系统用户身份验证,即/etc/passwd。
然后使用添加如下命令添加一个新的虚拟用户:
ftpasswd --passwd --file=/usr/local/etc/ftpd.passwd --name=test --uid=1002 --home=/usr/local/ftp/test --shell=/usr/sbin/nologin
–passwd指定建立一个新的虚拟用户,–group则建立一个虚拟组;
–file指定存储虚拟用户的文件;
–name指定此虚拟用户的用户名,密码会在命令执行时要求输入;
–uid指定此虚拟用户对应的系统用户UID,此虚拟用户将以此系统UID的身份读写文件;
–home指定此虚拟用户的根目录,就是其登陆FTP后的根目录;
–shell指定此虚拟用户的shell,为了安全当然指定一个不可登陆的shell了。
如果是源码安装的proftpd ,服务项proftpd以及命令ftpasswd分别在如下两个目录
ftpasswd :源码包目录/contrib/ftpasswd
proftpd服务程序:源码包目录/contrib/dist/rpm/proftpd.init.d
加上可执行权限。然后将ftpasswd 拷贝到/usr/local/sbin目录下面
将proftpd.init.d拷贝到/etc/init.d/下面 重命名为proftpd
====================================================================================
参考2: proftpd使用虚拟用户连接
====================================================================================
下文参考:https://www.cnblogs.com/as278257357/p/7339137.html
yum 安装proftpd
yum -y install proftpd
修改配置文件/etc/proftpd.conf
全部配置文件参数
TraceLog /var/log/proftpd/trace.log
ServerName "ProFTPD server"
ServerIdent on "FTP Server ready."
ServerAdmin root@localhost
DefaultServer on
AuthUserFile /etc/ftpd.passwd # ftpd.passwd需要手动创建,而且权限要设置为0600
AuthGroupFile /etc/ftpd.group # 手动创建
RequireValidShell off
AuthPAM off
DefaultRoot /ftp # /ftp文件夹需要手动创建
PidFile /var/run/proftpd/proftpd.pid # 原来的配置文件中没有pidfile这个,需要加上这个字段,否则proftpd可以启动,但是虚拟用户不能登录
AuthPAMConfig proftpd
AuthOrder mod_auth_file.c
PersistentPasswd off
UseReverseDNS off
User nobody
Group nobody
MaxInstances 20
UseSendfile off
ServerLog /var/log/proftpd/Server.log
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"、
ServerName "ProFTPD server"
ServerIdent on "FTP Server ready."
ServerAdmin root@localhost
DefaultServer on
AuthUserFile /etc/ftpd.passwd # ftpd.passwd需要手动创建,而且权限要设置为0600
AuthGroupFile /etc/ftpd.group # 手动创建
RequireValidShell off
AuthPAM off
DefaultRoot /ftp # /ftp文件夹需要手动创建
PidFile /var/run/proftpd/proftpd.pid # 原来的配置文件中没有pidfile这个,需要加上这个字段,否则proftpd可以启动,但是虚拟用户不能登录
AuthPAMConfig proftpd
AuthOrder mod_auth_file.c
PersistentPasswd off
UseReverseDNS off
User nobody
Group nobody
MaxInstances 20
UseSendfile off
ServerLog /var/log/proftpd/Server.log
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"、
安装ftpasswd
cd /usr/sbin/
wget http://www.castaglia.org/proftpd/contrib/ftpasswd
chmod +x ftpasswd
wget http://www.castaglia.org/proftpd/contrib/ftpasswd
chmod +x ftpasswd
创建虚拟用户
ftpasswd --passwd --name test --file /etc/ftpd.passwd --uid 5000 --gid 5000 --home /var/ftp/username-home/ --shell /usr/sbin/nologin
这步操作之后ftp.passwd这个文件的权限会设置为444,所以重启proftpd服务会失败
最后重点来了,怎么设置用户的权限呢,如果不能设置文件的权限为777,那么就要给虚拟用户类似真实用户的权限
创建用户时候设置uid 为5000,那么我们可以将/ftp下创建一个test文件夹,这个文件夹的属主设置为5000,这样这个test账号就可以对test文件夹做任何操作了
[最后修改由 admin, 于 2018-06-01 13:20:16]

这篇日志没有评论。
此日志不可发表评论。