在linux服务器中使用ftp时实际上是使用的vsftp。我们能够通过配置vsftp能够限制特定的用户只能通过FTP访问到某些指定的目录。
前置条件:
安装vsftp:
yum install vsftpd
条件:vsftp,被限制的账号为ftpTest,被限制的目录为/home/ftp/files
具体步骤如下:
一、配置用户账号ftpTest
1、添加用户账号并设置为不能使用telnet
useradd -d /home/ftpFiles -s /sbin/nologin ftpTest
2、配置ftpTest的密码为ftpTest
passwd ftpTest
连续输入两次密码:ftpTest
二、修改/home/ftpFiles的权限
1、修改目录权限为755
chmod -R 755 /home/ftpFiles
2、修改目录所有者为ftpTest
chown -R ftpTest /home/ftpFiles
三、配置vsftpd
1、修改vsftpd.conf
使用命令
vim /etc/vsftpd/vsftpd.conf
把文件相关内容修改成以下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
2、配置/etc/vsftpd/chroot_list文件
使用命令
vim /etc/vsftpd/chroot_list
将受限制的用户添加进去,每个用户名一行。我需要限制ftpTest
3、查看ftp的权限问题
使用命令查看ftp的相关配置
getsebool -a|grep ftp
相关内容如下:
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> on
allow_ftpd_use_cifs --> on
allow_ftpd_use_nfs --> on
ftp_home_dir --> on
ftpd_connect_db --> off
ftpd_use_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> on
tftp_anon_write --> on
tftp_use_cifs --> off
tftp_use_nfs --> off
如果不是,请设置相关项为on
setsebool allow_ftpd_full_access 1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
setsebool ftp_home_dir 1
setsebool httpd_enable_ftp_server 1
setsebool tftp_anon_write 1
4、重启ftp
/etc/rc.d/init.d/vsftpd restart