银河麒麟服务器操作系统V10SP2搭建FTP服务端
银河麒麟服务器操作系统V10SP2搭建FTP服务端
系统环境
OS版本:银河麒麟服务器操作系统V10SP2(x86_64)
FTP服务端:vsftpd-3.0.3-31
目标场景
①设定FTP根目录为/data/vsftpd/,并禁止匿名用户访问FTP服务端;
②FTP访问账户:
管理员用户:admin密码111,拥有整个FTP根目录/data/vsftpd/及子目录的上传、下载、修改和删除等全部权限;
普通用户一:test1密码222,仅拥有工作目录/data/vsftpd/test1/的上传、下载权限(不能修改已有文件且不能删除文件);
普通用户二:test2密码333,仅拥有FTP根目录/data/vsftpd/及子目录的下载权限(不能上传、修改和删除);
搭建步骤
- 安装vsftpd服务;
[root@localhost ~]# yum install -y vsftpd
2. 设置vsftpd服务开机自启并立即启动;
[root@localhost ~]# systemctl enable --now vsftpd
3. 系统防火墙放行vsftpd服务;
[root@localhost ~]# firewall-cmd --zone=public --add-service=ftp --permanent
[root@localhost ~]# firewall-cmd --reload
4. 修改FTP服务端配置文件/etc/vsftpd/vsftpd.conf,在配置文件结尾追加以下内容:
#禁止用户访问除主目录以外的目录
chroot_local_user=YES
#FTP根目录
local_root=/data/vsftpd
#设置支持ASCII模式上传
ascii_upload_enable=YES
#设置支持ASCII模式下载
ascii_download_enable=YES
#启用虚拟用户登录FTP
guest_enable=YES
#设置虚拟用户使用的系统用户名
guest_username=vsftpd
#设置虚拟用户的配置文件目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#设置虚拟用户与本地用户拥有相同的权限
virtual_use_local_privs=YES
#设置仅能访问当前登录用户的根目录
allow_writeable_chroot=YES
- 创建系统账户vsftpd,设置家目录为/data/vsftpd,并禁止使用该账户登录操作系统;
[root@localhost ~]# useradd vsftpd -d /data/vsftpd -s /sbin/nologin
- 新建三个虚拟用户(admin,test1,test2),并生成数据库文件;
备注:/etc/vsftpd/ftp_user文件内容中“奇数行”为虚拟用户名,“偶数行”为虚拟用户对应的密码。
[root@localhost ~]# cat /etc/vsftpd/ftp_user
admin
111
test1
222
test2
333
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/ftp_user /etc/vsftpd/vsftpd_login.db
7. 修改vsftpd服务的PAM认证模块配置;
修改前:
修改后:
8. 为三个虚拟用户配置FTP权限;
先创建虚拟用户的配置文件目录:
[root@localhost ~]# mkdir -p /etc/vsftpd/vsftpd_user_conf
(1)管理员账户:admin
(2)普通用户一:test1
(3)普通用户二:test2
9. 创建FTP根目录和FTP用户工作目录,并修改目录权限;
[root@localhost ~]# mkdir -p /data/vsftpd/test1
[root@localhost ~]# chown -R vsftpd:vsftpd /data/vsftpd
- 重启vsftpd服务。
[root@localhost ~]# systemctl restart vsftpd
访问测试
当客户端系统为银河麒麟桌面操作系统时,我们可以使用系统"文件管理器"或者"FTP客户端"工具软件来访问FTP服务端;当客户端系统为Windows系统时,我们可以使用开源工具“MobaXterm”或者“Windows资源管理器”来访问FTP服务端。
①管理员用户admin访问FTP服务端,在根目录下创建空文件夹“测试”,在“test1”目录下创建空文件“admin.txt”和“test.txt”,并测试删除admin.txt文件。
测试结果:能对FTP根目录及其所有子目录执行上传、下载、修改和删除等所有操作。
②普通用户test1访问FTP服务端,确认默认工作目录为test1,并且不能切换到上级目录;创建空文件test1.txt,并尝试修改文件名、文件内容和删除该文件。
测试结果:默认工作目录为test1,且仅能上传和下载文件/文件夹,无法修改和删除文件。
③普通用户test2访问服务端,尝试上传、下载、创建、删除和修改文件/文件夹;
测试结果:test2账户仅能下载FTP根目录/data/vsftpd/及其所有子目录的下载权限,其他包括上传、创建、删除和修改的一切操作均会提示“550 Permission denied”(权限不足)。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)