1.虚拟机vmware和unbuntu安装
1.1 Vmware官方下载地址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
vmware版本并不是越新越好,我下载的是VMware Workstation 64位_17.0.0.34456。其对应激活秘钥:https://www.haozhuangji.com/xtjc/180037874.html
1.2 Ubuntu官方下载地址:https://releases.ubuntu.com/ (我下载的事Ubuntu18.04.6版本( 64-bit PC (AMD64) desktop image) https://releases.ubuntu.com/18.04.6/ )
1.3 Vmware和ubuntu安装教程参考: https://blog.csdn.net/weixin_45496087/article/details/133067761
截图如右: 这里大部分都会,不过里面的第37条开始【安装VMWare Tools】这个之前没弄过,可学习下。
1) 虚拟cpu:分配给虚拟机的vCPU数量会增加宿主机CPU的负载。每个vCPU本质上是对宿主机物理CPU核心或超线程资源的模拟。当虚拟机运行时,VMware会调度其vCPU请求到物理CPU核心上执行。如果分配的vCPU过多,导致虚拟机总需求超过物理CPU的实际核心数,尤其是在高负载情况下,可能会导致宿主机CPU资源争用,影响宿主机自身的性能和响应速度。
虚拟内存:分配给虚拟机的内存是从宿主机的物理内存中划拨的。这部分内存将被锁定,不能被宿主机上的其他进程使用(eg:你的系统总内存是16GB,而你为虚拟机分配了8GB,那么在虚拟机运行期间,Windows将只能使用剩下的8GB内存。)另:如果不运行虚拟机,那么分配给虚拟机的内存将不会被使用,因此不会影响宿主Windows的总内存。
2)网络使用桥接模式,但ubuntu怎样也无法连接网络。上网查了很多方法均不行,后来找到解决方法(参考网址:https://blog.csdn.net/sakurawithdong/article/details/134503031 ,截图如下)。总结:如果宿主的网卡较多,当虚拟机自动桥接网络时,自动选择了错误网卡就会导致虚拟机系统无法联网,需要手工选下正确网卡。
2.ubuntu环境初始化
2.1远程连接ubuntu及简单的防火墙配置
#安装SSH服务 sudo apt update #更新软件源索引、检查软件包版本变化、准备软件包升级(它本身并不会直接升级已安装的软件包,而是更新本地的软件包信息数据库) sudo apt install openssh-server #下载安装ssh服务 sudo systemctl status ssh # 检查当前状态 sudo systemctl start ssh # 启动服务(如有必要) sudo systemctl enable ssh # 设置开机自启动 #获取ip地址 ip addr show #或 ifconfig #防火墙(如没有,下载防火墙 sudo apt install ufw) sudo ufw status #查看防火墙状态 sudo ufw enable #启动防火墙 sudo ufw disable #关闭防火墙 sudo ufw reload #重启防火墙,添加规则以后需要使用该命令进行重启防火墙 sudo ufw allow ssh #允许SSH(默认端口22) #另外:对于VNC远程桌面(VNC默认端口5900+,XRDP默认端口3389) sudo ufw allow 5900:5910/tcp # 允许端口范围,根据实际配置调整 sudo ufw allow 3389/tcp # 对于XRDP
2.2 搭建FTP服务
1. 安装 vsftpd
sudo apt update sudo apt install vsftpd #安装vsftpd(Very Secure FTP Daemon),这是一个在Ubuntu上广泛使用的FTP服务器软件 sudo vsftpd -v #查看vsftpd版本
2. 配置 vsftpd
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak #在修改配置之前,先备份原始配置文件以防万一 sudo vim /etc/vsftpd.conf #vim编辑器编辑配置文件 (sudo apt install vim#安装vim编辑器)
/etc/vsftpd.conf配置文件默认配置的中文解释(参考:https://blog.csdn.net/weixin_52799373/article/details/131045373)截图如右:
我参考的配置如下:
anonymous_enable=NO #不允许匿名FTP登录。(默认配置) local_enable=YES #设置允许本地用户登录FTP服务器(默认配置) write_enable=YES #写权限。允许用户上传文件到FTP服务器(默认被注释#) chroot_local_user=YES #用户根目录限制(可选,提高安全性):如果您希望限制用户只能访问其主目录,防止他们浏览到其他系统文件(默认被注释#) chroot_list_enable=YES #启用chroot_list_file列表,用于指定哪些用户不应该被限制在主目录中。(默认被注释#) chroot_list_file=/etc/vsftpd.chroot_list #指定了chroot_list_file列表的路径和名称。一行一个用户名。(默认被注释#) #1.当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 #2.当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。 #3.当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。 #4.当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。 #注意: 如果限制了用户不能切换其他目录,一定要在配置文件中新增 allow_writeable_chroot=YES,否则会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot() #local_root=/vsftp/data #也可以加上这段配置(路径为自定义,提前建好)(可选,添加此配置项): 设置FTP用户的本地根目录,也就是说,FTP用户登录后,其工作目录将被限制在该目录及其子目录下。(这个测试未成功)
3.创建ftp用户
一般情况下会在home下新建一个FTP的主目录,然后建一个普通用户如下:
sudo mkdir /home/vftp #创建文件夹 sudo chown vftp:vfpt /home/vftp #将目录 /home/vftp 的所有者和所属组均更改为名为 vftp 的用户及其对应的同名用户组 # 创建vftp用户,指定此用户的主目录。且限制其只能通过特定的服务(如FTP、SFTP等)进行远程访问,而不能直接登录系统。 # `/sbin/nologin` 是一个特殊的 shell,它不允许用户登录系统.通常用于限制某些用户只能通过特定的服务(如FTP、SFTP等)进行远程访问,而不能直接登录系统。 sudo useradd -d /home/vftp -s /sbin/nologin vftp sudo passwd vftp # 设置密码(给vftp用户设置密码) sudo usermod -s /bin/bash vftp #如果想要恢复为正常用户,可以执行此命令 #注意:::如果你创建的用户是只能通过ftp访问的用户,一定要删除 /etc/pam.d/vsftpd 配置文件,因为这个配置文件会导致使用用户名登录 ftp 失败!!!
但是也有特殊需求,我想要创建一个不能登录只能通过ftp访问的用户,并且我需要指定用户主目录是一个已经存在的目录:
# 创建vftp用户,指定此用户的主目录。且限制其只能通过特定的服务(如FTP、SFTP等)进行远程访问,而不能直接登录系统。 # `/sbin/nologin` 是一个特殊的 shell,它不允许用户登录系统.通常用于限制某些用户只能通过特定的服务(如FTP、SFTP等)进行远程访问,而不能直接登录系统。 sudo useradd -d /home/vftp -s /sbin/nologin vftp sudo passwd vftp # 设置密码(给vftp用户设置密码) sudo usermod -s /bin/bash vftp #如果想要恢复为正常用户,可以执行此命令 #注意:::如果你创建的用户是只能通过ftp访问的用户,一定要删除 /etc/pam.d/vsftpd 配置文件,因为这个配置文件会导致使用用户名登录 ftp 失败!!!
例子:在/home/vftp 下创建 Down 和 Up目录,Down仅可下载,Up可下载、上传、删除;每天00:00将Up文件夹中文件移动到Down文件夹中。(参考:https://blog.csdn.net/qq_24568487/article/details/89400561)
#1.修改 /home/vftp 权限(因为要在里面创建Down 和 Up目录,且其不能被 ftpusers 删除,所以应该限制 /home/vftp 写权限) #7读、写、执行权限 6读、写权限,无执行权限 5读、执行权限,无写权限 sudo chmod 555 /home/vftp #2.在 /home/vftp 下创建 Down 和 Up目录 sudo mkdir /home/vftp/Down sudo chown vftp:vftp /home/vftp/Down #同样需要修改其用户组和拥有者为 vftp sudo mkdir /home/vftp/Up sudo chown vftp:vftp /home/vftp/Up #同样需要修改其用户组和拥有者为 vftp #3.Down仅可下载,Up可下载、上传、删除。 sudo chmod 555 /home/vftp/Down #修改 Down 目录下文件仅能下载 sudo chmod 777 /home/vftp/Up #修改 Up 目录下能下载、上传、删除 #4.附加功能(可选),定时将Up中文件移动到Down中 #(1)sudo crontab -e #(2)选择编辑器时最好选 vim 输入数字就可以了。 #(3)最后一行添加:0 0 * * * mv /home/ftp/Up/* /home/ftp/Down #说明:命令前可以输入五个数字,分别代表( * 代表任意 ): # 分钟 (0-59) # 小時 (0-23) # 日期 (1-31) # 月份 (1-12) # 星期 (0-6) #0 表示星期天 #则 0 0 * * * mv /home/ftp/Up/* /home/ftp/Down 代表在0分0时的任意(每)一天都移动Up中的文件到Down下
4.创建vsftpd.chroot_list文件并添加可ftp的用户
sudo vim /etc/vsftpd.chroot_list
#在里面添加可登录 ftp 的用户,一行一个用户名。vftp 添加进去。使用ps -aux | grep vsftpd
查看服务是否启动
5.重启vsftp服务,使配置生效
sudo service vsftpd restart
使用ps -aux | grep vsftpd
查看服务是否启动
6.更改防火墙配置(如防火墙启动)
sudo ufw allow ftp #允许ftp(默认端口21) sudo ufw reload #重启防火墙,使新规则生效 sudo ufw status #查看防火墙状态
7.测试(FileZilla)
标签:chroot,安装,虚拟机,sudo,用户,vsftpd,ubuntu,home,vftp From: https://www.cnblogs.com/zdyang/p/18140273