centos 7开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录

原地址: http://www.cnblogs.com/mrcln/p/6179673.html

1.切换到root用户

2.查看是否安装vsftp,我这个是已经安装的。

[root@localhost vsftpd]# rpm -qa |grep vsftpd
vsftpd-3.0.2-11.el7_2.x86_64

3.如果没有发现,则安装。

yum install vsftpd* -y

4.启动vsftpd服务,以及重启命令(centos7.0以上版本)

[root@localhost vsftpd]# /bin/systemctl start vsftpd.service
[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service

低版本试一下这些命令:

/etc/init.d/vsftpd restart
启动ftp命令  #service vsftpd start

停止ftp命令  #service vsftpd stop

重启ftp命令  #service vsftpd restart

设置自启:chkconfig vsftpd on

5.测试一下能否登录FTP了,先安装一个ftp客户端组件。

yum -y install ftp 

尝试登录一下

ftp localhost 

输入用户名ftp,密码随便(因为默认是允许匿名的)

登录成功,就代表ftp服务可用了。

但是,外网是访问不了的,所以还要继续配置。

6.取消匿名登录

vi /etc/vsftpd/vsftpd.conf

把第一行的 anonymous_enable=YES ,改为NO

重启

[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service

7.创建一个组,用于存放ftp用户

groupadd ftpgroups

8.创建ftp用户,并加入ftpgroups组,/home/ftp是自己建的目录,不存在就自己创建一个

useradd -d /home/ftp/ftptest -g ftpgroups ftptest
 
 
用户权限设置
usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftp
  
  
usermod -s /sbin/bash test //用户test恢复正常
usermod -d /test test //更改用户test的主目录为/test

设置密码

passwd ftptest

设置不允许用于用户登录

usermod -s /sbin/nologin ftptest

 

可以看到已经建好了

[root@localhost vsftpd]# ls /home/ftp
ftpn  ftptest

这时候重启一下vsftpd服务

/bin/systemctl restart vsftpd.service

登录一下看,可以登录了,但是发现也能访问上层目录,甚至根目录,这不是我们希望的,修改一下配置文件让其只能访问自身目录

vi /etc/vsftpd/vsftpd.conf

如下设置

chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

另外,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

 要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列项:

 allow_writeable_chroot=YES

 

好了,这样就只能访问自身所属目录。

如果希望某个用户可以访问根目录,把用户名加入

/etc/vsftpd/chroot_list

不存在就创建这个文件,一行一个用户名。

 

如果还是登陆不了ftp,那很有可能是selinux的问题,这个东西把他关掉就行

vi /etc/selinux/config

SELINUX=enforcing 设置成SELINUX=disabled

 

重启一下服务器

reboot

重启完了别忘了把vsftpd服务打开,默认是自启的。

 

如果连接不上,很可能是防火墙阻止了,尝试关闭防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

 

如果出现远程文件夹无法显示的情况,请使用主动模式连接,在你的ftp工具上设置。

 

vsftpd.conf文件参数中文解释请移步:

linux下ftp配置文件详解

### 如何在宝塔面板中正确配置 Nginx 以部署 Vue 前端项目 #### 一、准备工作 为了成功部署 Vue 前端项目,在开始之前需成以下准备事项: - **购买服务器**:选择合适的云服务提供商(如阿里云),并创建一台虚拟机实例,推荐使用 CentOS 或 Ubuntu 操作系统[^3]。 - **安装宝塔面板**:通过官方文档或脚本快速安装宝塔面板。该工具提供了可视化的管理界面,极大简化了 Linux 系统上的运维工作[^2]。 #### 二、环境搭建 登录到宝塔面板后执行以下操作: 1. **安装必要组件** - 在左侧菜单栏找到“软件商店”,依次安装 `Nginx` 和其他可能需要用到的服务(例如 PHP)。尽管 Vue 是静态资源项目,但某些情况下仍需要配合动态语言处理特定请求。 2. **上传构建文件** - 使用 FTP 工具(比如 Xftp)连接至服务器,将本地打包好的 Vue 应用程序目录复制到 `/www/wwwroot/your-domain.com` 下面[^1]。注意这里的路径可以根据实际需求调整,默认根目录由站点设置决定。 #### 三、Nginx 配置详解 针对 Vue 单页面应用 (SPA),如果直接访问子路由会出现 404 错误,则需要修改默认的 Nginx 配置来支持 HTML5 History Mode: 1. 创建一个新的网站或者编辑现有站点; 2. 进入对应的域名配置选项卡下的伪静态规则部分; 3. 添加自定义规则如下所示: ```nginx location / { try_files $uri $uri/ /index.html; } ``` 这段代码的作用在于当用户尝试加载不存在的具体 URL 地址时重定向回首页 index.html 文件从而让前端框架接管渲染逻辑[^4]。 #### 四、解决跨域问题 对于前后分离架构的应用场景来说,不可避免会碰到 CORS(Cross-Origin Resource Sharing) 的挑战。可以通过两种方式应对这一情况: ##### 方法A: 修改后端允许来源头信息 确保 API 接口所在的服务器响应头部包含了正确的 Access-Control-Allow-* 字段值给定客户端许可范围。 ##### 方法B: 设置反向代理 利用 Nginx 实现内部跳转而不暴露真实地址的方式规避浏览器的安全策略限制。具体做法是在刚才提到过的高级设置区域填写目标主机的信息以及可选的内容替换表达式。 --- ### 总结 综上所述,借助于宝塔面板的强大功能可以非常便捷高效地成整个流程从初始化到最后上线的过程。只要遵循上述指导原则,并妥善处理好各个细节之处就能顺利实现预期效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值