CentOS 6 配置FTP虚拟用户

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
运维安全中心(堡垒机),企业双擎版 50资产 7天
简介: CentOS 6 配置FTP虚拟用户

0、安装vsftpd、ftp、db4-utils

[root@c ~]# yum install -y vsftpd ftp db4-utils

1、创建用于进行FTP认证的用户数据库文件

[root@c ~]# cd /etc/vsftpd/
[root@c vsftpd]# vim user.txt
ftp1                             ##用户ftp1
123                              ##用户ftp1的密码 
ftp2                             ##用户ftp2 
123                              ##用户ftp2的密码
[root@c vsftpd]# db_load -T -t hash -f user.txt user.db
[root@c vsftpd]# ll user.*
-rw-r--r-- 1 root root 12288 6月 9 08:29 user.db     ##用户数据库文件
-rw-r--r-- 1 root root 18 6月 9 08:21 user.txt

[root@c vsftpd]# chmod 600 user.*

2、创建vsftpd用于存储文件的目录以及虚拟用户映射的系统本地用户

[root@c vsftpd]# useradd -d /var/ftp/virtual -s /sbin/nologin virtual
[root@c vsftpd]# tail -1 /etc/passwd
virtual:x:502:502::/var/ftp/virtual:/sbin/nologin   ##刚刚创建的virtual用户
[root@c vsftpd]# chmod 777 /var/ftp/virtual/        ##直接给777权限

3、创建用于支持虚拟用户的PAM文件

PAM是一组安全机制的模块,系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行任何修改。

[root@c vsftpd]# vim /etc/pam.d/vsftpd.u
auth    required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user

4、修改vsftpd配置文件,添加对虚拟用户的支持

参数 作用
anonymous\_enable=NO 禁止匿名开放模式
local\_enable=YES 允许本地用户模式
guest\_enable=YES 开启虚拟用户模式
guest\_username=virtual 指定虚拟用户账户
pam\_service\_name=vsftpd.u 指定PAM文件
user\_config\_dir=/etc/vsftpd/vuser 虚拟用户配置文件存放的目录

在vsftpd.conf末尾添加(

[root@c ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.u
user_config_dir=/etc/vsftpd/vuser

创建虚拟用户的配置文件(为虚拟用户设置不同的权限)

新建一个目录,在里面分别创建两个以ftp1和ftp2命名的文件(ftp1和ftp2是刚才在user.txt添加的用户)

[root@c ~]# mkdir /etc/vsftpd/vuser
[root@c ~]# cd /etc/vsftpd/vuser

允许ftp1用户上传、创建、修改、查看、删除文件

[root@c vuser]# vim ftp1
anon_upload_enable=YES                   ##允许上传文件
anon_mkdir_write_enable=YES              ##允许创建目录
anon_other_write_enable=YES              ##开放写入权限

只允许ftp2用户下载,ftp2文件是空文件(所以只有下载权限)

[root@c vuser]# touch ftp2

5、启动,设置开机自启

[root@c ~]# service vsftpd start
为 vsftpd 启动 vsftpd:       [确定]
[root@c ~]# chkconfig vsftpd on

6、验证

[root@c ~]# ftp 127.0.0.1                    ##这里我用的是127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).              ##127.0.0.1是回送地址,指本机
220 (vsFTPd 2.2.2)                               ##这里是vsftpd的版本
Name (127.0.0.1:root): ftp1                      ##用ftp1用户登陆
331 Please specify the password.                 ##331用户名正确
Password:                                        ##输入密码
230 Login successful.                            ##这里显示230就OK了
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>                                             ##用过mysql都知道这里是啥

创建个文件夹再删除,看看ftp1用户是否具有写入权限

ftp> mkdir yun3                                     ##创建yun3文件夹
257 "/yun3" created
ftp> ls
227 Entering Passive Mode (127,0,0,1,71,149).       ##227响应码,进入被动模式
150 Here comes the directory listing.
drwx------ 2 502 502 4096 Jun 09 01:36 yun3         ##显示出yun3目录了,ok
226 Directory send OK.                              ##226响应码,请求的文件操作成功
ftp> rm yun3                                        ##删除文件夹
250 Remove directory operation successful.
ftp> ls
227 Entering Passive Mode (127,0,0,1,141,66).
150 Here comes the directory listing.
226 Directory send OK.
ftp> exit                                           ##退出

再验证ftp2用户,ftp2用户只有下载权限

[root@c pam.d]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (127.0.0.1:root): ftp2                  ##用ftp2用户登录
331 Please specify the password.
Password:                                    ##输入密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir yun3                              ##创建yun目录
550 Permission denied.                       ##ftp2用户没有写入权限,所以创建不了    
ftp> exit

end

相关文章
|
7月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
725 87
|
5月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
186 16
|
5月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
470 9
|
7月前
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
1626 29
|
7月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
222 5
|
8月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
1837 26
|
8月前
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
446 13
|
8月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
333 10
|
11月前
|
Java
CentOS7.8配置Adoptium-Java17运行环境
本指南介绍如何设置清华镜像源并安装 Temurin-17-JRE 运行环境。首先,编辑 `/etc/yum.repos.d/adoptium.repo` 文件,配置清华镜像源。接着,使用 `yum install -y temurin-17-jre` 命令安装 Temurin-17-JRE,并通过 `java --version` 验证安装成功。相关配置和操作界面截图附后。
348 8