ubuntu创建sftp和ftp服务器及相应的用户管理

本文详述了在Ubuntu系统中如何搭建SFTP和FTP服务器,包括创建用户组、用户,以及设置权限进行文件上传和下载。同时,针对可能出现的权限问题提供了解决方案,确保文件传输的顺利进行。

一、sftp服务器

进入root模式(下面的操作默认都是在root用户下)

#安装openssh-server
apt-get install -y openssh-server

创建sftp的组和用户

#创建sftp-users组
groupadd sftp-users
#创建sftp用户目录alice
mkdir /home/alice
#创建sftp用户alice,并且绑定其主目录为刚才创建的目录
useradd -d /home/alice alice
#设置用户alice的密码
passwd alice
#输入两次密码
#将用户alice添加到组sftp-users中,并且设置不能telnet
#注:-a参数表示append,linux在创建用户时会默认创建一个和用户同名的组
#加上-a参数表示alice不退出原来的名为alice的组的情况下,加入sftp-users组中
usermod -a -G sftp-users -s /bin/false alice

创建ssh用户组及用户管理

#创建ssh-users组
groupadd ssh-users
#将当前的ubuntu系统管理员加入到ssh-users组中
usermod -a -G ssh-users admin
#创建sftp的根目录并修改相应权限(将admin改为管理员名字)
mkdir /home/sftp_root
mkdir /home/sftp_root/shared
chown admin:sftp-users /home/sftp_root/shared
chmod 770 /home/sftp_root/shared
#修改ssh的配置文件
vi /etc/ssh/sshd_config
#在文件末尾添加下面内容:
AllowGroups ssh-users sftp-users

Match Group sftp-users

ChrootDirectory /home/sftp_root

AllowTcpForward
<think>我们有两个引用:[^1]是关于配置FTP服务器的(VSFTPD),[^2]是关于Ubuntu18.04安装vsftpd并配置chroot的。 用户的问题是:如何在Ubuntu系统上开启FTPSFTP? 注意:FTPSFTP是两个不同的服务。 1. FTP:通常使用vsftpd(Very Secure FTP Daemon)来提供FTP服务。 2. SFTP:通常是SSH的一部分,所以只要安装了OpenSSH服务器,就已经支持SFTP了。 因此,回答应该分为两个部分:配置FTP服务器(使用vsftpd)配置SFTP(实际上就是安装配置SSH)。 根据引用[^1][^2]的内容,我们可以总结出FTP(vsftpd)的安装配置步骤。 同时,对于SFTP,我们只需要说明如何安装配置SSH服务器即可。 步骤: 第一部分:开启FTP服务(使用vsftpd) 1. 安装vsftpd 2. 配置vsftpd(包括设置chroot等,引用[^2]中提到了配置项) 3. 启动服务 第二部分:开启SFTP服务 1. 安装OpenSSH服务器(如果尚未安装) 2. 配置SSH以启用SFTP(默认情况下,安装SSH后SFTP就已经可用) 3. 注意:SFTP使用SSH的端口(默认22),所以不需要额外开放端口(除了SSH端口) 另外,需要说明的是,FTPSFTP的区别以及安全性(推荐使用SFTP)。 我们按照这个思路来组织回答。 </think>### Ubuntu系统开启FTPSFTP服务指南 #### 一、开启FTP服务(使用VSFTPD) 1. **安装VSFTPD** ```bash sudo apt update sudo apt install vsftpd ``` 2. **配置VSFTPD** 编辑配置文件: ```bash sudo nano /etc/vsftpd.conf ``` 修改以下关键参数: ```ini anonymous_enable=NO # 禁用匿名登录 local_enable=YES # 允许本地用户登录 write_enable=YES # 允许文件写入 chroot_local_user=YES # 锁定用户到主目录[^2] chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list # 例外用户列表 ``` 3. **创建例外用户列表** ```bash sudo nano /etc/vsftpd.chroot_list ``` 每行添加一个允许访问根目录的用户名(如不需要例外可留空) 4. **管理服务** ```bash sudo service vsftpd restart # 重启服务 sudo service vsftpd status # 检查状态 ``` 5. **防火墙开放端口** ```bash sudo ufw allow 20:21/tcp # FTP控制通道 sudo ufw allow 40000:50000/tcp # 被动模式端口范围 ``` #### 二、开启SFTP服务(基于SSH) 1. **安装OpenSSH服务器**(通常默认安装) ```bash sudo apt install openssh-server ``` 2. **验证SFTP状态** 配置文件位于`/etc/ssh/sshd_config`,默认包含: ```ini Subsystem sftp /usr/lib/openssh/sftp-server ``` 3. **增强安全性配置**(可选) 限制用户只能使用SFTP: ```ini Match Group sftpusers # 针对sftpusers组用户 ChrootDirectory /sftp # 锁定目录 ForceCommand internal-sftp # 强制使用SFTP X11Forwarding no AllowTcpForwarding no ``` 4. **创建受限用户** ```bash sudo addgroup sftpusers sudo useradd -m sftpuser -g sftpusers sudo passwd sftpuser sudo chown root:root /sftp # 目录所有者设为root ``` 5. **重启SSH服务** ```bash sudo service sshd restart ``` #### 三、协议对比与选择建议 | **特性** | FTP (VSFTPD) | SFTP (SSH) | |----------------|----------------------------|----------------------------| | **加密方式** | 明文传输 (建议搭配FTPS) | SSH加密传输 | | **端口** | 20/21 + 被动端口范围 | SSH端口 (默认22) | | **安全性** | 中等 (需额外配置加密) | 高 (原生加密) | | **适用场景** | 传统客户端兼容 | 安全传输/自动化脚本 | > **强烈建议**:优先使用SFTP协议,因其原生加密特性可避免密码嗅探风险。FTP仅用于必须兼容旧系统的场景[^1][^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值