在centos7上配置一个ftp,要有用户验证,并且用户不能上传文件只能下载
时间: 2024-06-12 20:07:12 浏览: 114
1. 安装vsftpd
在终端中运行以下命令:
```
sudo yum install vsftpd
```
2. 配置vsftpd
打开vsftpd配置文件:
```
sudo vi /etc/vsftpd/vsftpd.conf
```
在文件末尾添加以下内容:
```
anonymous_enable=NO
local_enable=YES
write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
```
解释一下每个设置:
- `anonymous_enable=NO` 禁止匿名访问。
- `local_enable=YES` 允许本地用户访问。
- `write_enable=NO` 禁止用户上传文件。
- `dirmessage_enable=YES` 允许发送目录消息。
- `use_localtime=YES` 使用本地时间。
- `xferlog_enable=YES` 启用传输日志记录。
- `connect_from_port_20=YES` 启用常规FTP端口(20)。
- `chroot_local_user=YES` 将用户锁定在家目录中。
- `secure_chroot_dir=/var/run/vsftpd/empty` 设置安全锁定目录。
- `pam_service_name=vsftpd` 使用PAM进行用户身份验证。
- `rsa_cert_file` 和 `rsa_private_key_file` SSL证书和密钥文件的路径。
- `ssl_enable=NO` 禁用SSL。
重启vsftpd服务:
```
sudo systemctl restart vsftpd
```
3. 创建FTP用户
创建一个FTP用户:
```
sudo useradd -m ftpuser
```
设置FTP用户密码:
```
sudo passwd ftpuser
```
4. 设置FTP目录权限
将FTP用户的主目录更改为只读:
```
sudo chmod 555 /home/ftpuser
```
5. 测试FTP连接
使用FTP客户端连接到服务器IP地址,使用FTP用户凭据登录。您应该可以查看FTP用户的主目录,但不能上传文件。
注意:如果在连接时遇到问题,请确保防火墙已配置允许FTP流量。
阅读全文