【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
使用vsftpd软件搭建一个ftp服务器,你需要满足这样的需求:创建3个账户,user1, user2, user3 ,其中这三个用户都可以访问同一个目录,但是user1可读写,但user2和user3只读.
步骤如下:
1)建立虚拟账户
useradd vsftp -s /sbin/nologin
2 ) 建立虚拟账户相关的文件
vim /etc/vsftpd/vsftpd_login
user1
user
user2
user
user3
user
保存
3 )修改权限,只允许root用户操作
chmod 600 !$
4 )生成对应的库文件 db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
5 ) 创建虚拟账号对应的目录,指定为配置文件
vim user1
local_root=/home/vsftp/
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
vim user2
local_root=/home/vsftp/
anonymous_enable=NO
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
vim user3
local_root=/home/vsftp/
anonymous_enable=NO
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
6 )创建目录
mkdir /home/vsftp
7 ) 修改权限/home/vsftp的拥有者
chmod -R vsftp:vsftp /home/vsftp/
8)设置关于认证的文件
vim /etc/pam.d/vsftpd
添加
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是64位系统,则改
为/lib64/security/pam_userdb.so
前面的.db是认证模块
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是64位系统,则改为/lib64/security/pam_userdb.so
9)修改/etc/vsftpd.conf文件
vim /etc/vsftpd.conf
anonymous_enable=NO
local_enable=NO
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
【上面的配置主要是针对系统用户的,所以对我们的虚拟用户映射用户无效】
guest_enable=YES
guest_username=vsftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
启动vsftpd服务
/etc/init.d/vsftpd start即可
关于遇到的错误:
1).
出现问题:
[root@ip5 vsftpd_user_conf]# /etc/init.d/vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: 500 OOPS: bad bool value in config file for: guest_enable
[FAILED]
总结:
出现此类情况是:
因为你的guest_enable=YES
行后面有空格,以后要养成习惯,后面不要留空格,该换行换行
2) 访问出现:
出现:
[Delaying before reconnect: 29] 或者:重新连接前延时:ss
解决方案
vim /etc/vsftpd/vsftpd.conf文件中的
local_user=YES
注意:
在搭建pure-ftpd服务器的时候,也会出现第二种情况
当初出现问题的原因是
使用
/usr/local/pureftpd/bin/pure-pw passwd 用户名
修改密码之后
没有进行密码库的更新,用户登陆会出现2)类似的问题,要进行库文件的更新
/usr/local/pureftpd/bin/pure-pw mkdb
即可
来源:oschina
链接:https://my.oschina.net/u/613887/blog/680720