在vsftpd中要实现不同用户不同权限,可以利用虚拟用户来实现。
vsftpd的本地用户本身是系统的用户,除了可以登录FTP服务器外,还可以登录系统使用其他系统资源,而vsftpd的虚拟用户则是FTP服务的专用用户,虚拟用户只能访问FTP服务器资源。对于只需要通过FTP对系统有读写权限,而不需要其他系统资源的用户或情况来说,采用虚拟用户方式是很适合的。
vsftpd的虚拟用户采用单独的用户名/口令保存方式,与系统账号(passwd/shadow)分离,这大大增强了系统的安全性。vsftpd可以采用数据库文件来保存用户/口令,如hash;也可以将用户/口令保存在数据库服务器中,如MySQL等。vsftpd验证虚拟用户,则采用PAM方式。由于虚拟用户的用户名/口令被单独保存,因此在验证时,vsftpd需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证,这就是guest用户,这正如同匿名用户也需要有一个系统用户ftp一样。当然,guest用户也可以被认为是用于映射虚拟用户。
环境:
Ubuntu 10.04
vsftpd 2.2.2
1、安装vsftpd
$sudo apt-get install vsftpd
$sudo apt-get install db4.6-utils
2、建立本地虚拟用户
#useradd -d /home/ftp virtual
指定目录为/home/ftp
3、建立虚拟用户数据库
#mkdir /etc/vsftpd
#vim /etc/vsftpd/login.txt
login.txt文件内容:
gavin
123
jimson
123
admin
admin
注:奇数行为用户名,偶数行为密码。
#db4.6_load -T -t hash -f /etc/vsftpd/logins.txt /etc/
vsftpd的本地用户本身是系统的用户,除了可以登录FTP服务器外,还可以登录系统使用其他系统资源,而vsftpd的虚拟用户则是FTP服务的专用用户,虚拟用户只能访问FTP服务器资源。对于只需要通过FTP对系统有读写权限,而不需要其他系统资源的用户或情况来说,采用虚拟用户方式是很适合的。
vsftpd的虚拟用户采用单独的用户名/口令保存方式,与系统账号(passwd/shadow)分离,这大大增强了系统的安全性。vsftpd可以采用数据库文件来保存用户/口令,如hash;也可以将用户/口令保存在数据库服务器中,如MySQL等。vsftpd验证虚拟用户,则采用PAM方式。由于虚拟用户的用户名/口令被单独保存,因此在验证时,vsftpd需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证,这就是guest用户,这正如同匿名用户也需要有一个系统用户ftp一样。当然,guest用户也可以被认为是用于映射虚拟用户。
环境:
Ubuntu 10.04
vsftpd 2.2.2
1、安装vsftpd
$sudo apt-get install vsftpd
$sudo apt-get install db4.6-utils
2、建立本地虚拟用户
#useradd -d /home/ftp virtual
指定目录为/home/ftp
3、建立虚拟用户数据库
#mkdir /etc/vsftpd
#vim /etc/vsftpd/login.txt
login.txt文件内容:
gavin
123
jimson
123
admin
admin
注:奇数行为用户名,偶数行为密码。
#db4.6_load -T -t hash -f /etc/vsftpd/logins.txt /etc/

本文介绍了如何在Ubuntu上通过vsftpd设置虚拟用户,实现不同用户具有不同的FTP权限。步骤包括安装vsftpd,创建虚拟用户数据库,设置PAM授权,定义用户权限,并调整vsftpd配置。通过这种方式,可以限制用户仅能访问FTP服务器资源,提高系统安全性。
最低0.47元/天 解锁文章
1132

被折叠的 条评论
为什么被折叠?



