linux系统搭建ftp服务器--只给某个用户访问其默认目录下的文件

1、环境:

window操作系统中安装FlashFXP 软件或xftp;
服务器端的操作系统为centos8;

2、检查安装vsftpd软件

查看所有的安装的软件包 并在结果中查找包含vsftp 的文件

rpm -qa | grep vsftpd

如果没有装则使用yum命令安装

yum -y install vsftpd

3、创建用户

在/var目录下创建www文件,
使用useradd命令:创建用户feng并指定用户目录为/var/www/feng

useradd -d /var/www/feng feng 

#(回车)给用户feng设置登录密码

passwd feng   

在/var/www/feng 目录下创建一个site文件夹一个da文件夹

用于存储项目配置文件,需要在nginx.conf文件中引入site文件下的.conf文件

mkdir site

用于放项目内容

mkdir da

查看新创建的用户的信息
tail:默认显示指定文件的末尾10行

tail /etc/passwd

或:

cat /etc/passwd
/etc/passwd文件存放的是用户的信息,由6个分号组成的7个信息,解释如下
(1):用户名。
(2):密码(已经加密)
(3):UID(用户标识),操作系统自己用的
(4):GID组标识。
(5):用户全名或本地帐号
(6):开始目录
(7):登录使用的Shell,就是对登录命令进行解析的工具。

4、配置/etc/vsftpd/vsftpd.conf文件

查看下该文件里有些啥

cat /etc/vsftpd/vsftpd.conf

切换当前工作目录到/etc/vsftpd

cd /etc/vsftpd

配置vsftpd.conf 锁定根目录

vim vsftpd.conf
#本地用户登录后自动转到的ftp根目录
local_root= /var/www
#将所有用户都不被限定在指定的主目录内
chroot_local_user=NO
#启用列外的用户列表
chroot_list_enable=YES
#指定列外的用户列表文件--指定的用户列表,这些用户作为“例外”,被限定在指定的主目录
chroot_list_file=/etc/vsftpd/chroot_list

在/etc/vsftpd/下建立文件chroot_list文件,不希望使用者在ftp 时能够切换到上一层目录/var/www

vim /etc/vsftpd/chroot_list

在文件中添加用户名,然后可以禁止了访问上一层了
例如:username 多个用户请换行

在这里插入图片描述

配置完之后重启vsftpd服务
查看vsftpd 服务的运行状态

systemctl status vsftpd

如果最后一条状态是stoped则启动vsftpd

systemctl start vsftpd 

如果最后一条状态是started则重启vsftpd

systemctl restart vsftpd 

在window系统中使用FlashFXP 客户端登录或者用xftp登录

5、配置文件夹权限

切换工作目录到/var/www

cd /var/www

查看文件夹中所包含的文件的信息—查看文件夹属于用户,属于哪个用户组,

ll

改文件夹的用户权限

 chown feng:feng fengchmod 700 feng

这个时候 他们可以在各自拥有的文件夹这创建文件 ,但不可以到对方的文件夹中创建文件

权限值的解读 文件夹权限:
r==>可读 w==>可写 x==>可执行
r=4 w=2 x=1
777 代表 rwxr-rwx-rwx 所有用户都可读可写可执行。

用户登录xftp测试能否打开其他用户的文件。

结果:feng用户只可以对feng目录下的文件进行操作(上传、下载、修改),可以访问其他目录文件,但是,对于其他目录文件只能查看,不能修改。

((注意)):如果需要让该用户只可以看到其目录下的内容,不可以查看,且不能访问其他目录文件,请看:https://blog.csdn.net/weixin_38797742/article/details/109306322

6、vsftp设置不同用户登录ftp的根目录不同

vim vsftpd.conf

添加如下配置

user_config_dir=/etc/vsftpd/userconfig 用户配置目录

mkdir userconfig

cd userconfig/

[root@localhost userconfig]# vi 8601 (文件名就是用户名)

local_root=/app/printfile/8601 (设置用户登录的目录)

6,额外

创建某个用,可以操作linux修改文件夹及其下面所有文件的权限:
chmod -R 777 www/
-R参数是递归 处理目录下的所有文件以及子文件夹
777是变更后的权限表示(所有用户有读和写以及执行的权限)
这样www文件夹下的文件就可以被所有用户修改了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12月13日 什么是help_method,session的简单理解, find_by等finder method

helper_methodDeclare a controller method as a helper. For example, helper_method :link_todef link_to(name, options) … end makes the link_to controller method available in the view.课程遇到的如current_cart,current_user. 声明后,就可以在view里面使…

Openshift源中的高可用性Drools无状态服务

嗨,大家好! 在这篇博客文章中,我想举一个简单的例子,展示使用Openshift 3(Docker和Kubernetes)扩展Drools Stateless服务有多么容易。 我将展示如何通过按需提供新实例来扩展我们的服务,以及如何…

FTP配置文件详解vsftpd.conf

FTP配置文件详解vsftpd.conf 转载过来做个笔记,原文地址:https://blog.csdn.net/miss520jenny/article/details/92664533 #vi /etc/vsftpd/vsftpd.conf 1.登录和对匿名用户的设置 write_enableYES //是否对登录用户开启写权限。属全局性设…

Visual C++中MFC消息的分类

Visual C中MFC消息的分为三类:标准(窗口)消息、命令消息、控件消息。 1、标准(窗口)消息:窗口消息一般与窗口内部运作有关,如创建窗口,绘制窗口,销毁窗口,通常,消息是从系统发到窗口&#xff0c…

为什么配置了vsftpd.conf文件,用户还是可以访问上级目录?

因为选择的连接类型是 SFTP over SSH 所以访问的是 sftp服务器,sftp的配置文件中没对该用户限制根目录,所以可以访问上一级目录。但是,还是不可以写入了,除了该用户的目录文件,其他文件都是只读。 修改 /etc/ssh/sshd…

来呀,快活呀。iOS 超级码农群:538549344

特大喜讯: iOS开发的小伙伴们,咱们有群了 iOS 超级码农交流群: 538549344 建群源于最近好多人加我QQ交流技术问题,有时忙于工作无法及时回复,为了大家的问题能及时得到解答,还是建个群,群里很多…

jpa jsf_完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分

jpa jsf我们创建了这篇文章,将展示如何使用以下工具创建完整的Web应用程序:Tomcat7,带有Primefaces的JSF2(Facelets和Libraries)(具有AutoComplete),JPA / Hibernate(具有…

前端性能优化:Add Expires headers

合理设置 HTTP缓存 缓存的力量是强大的,恰当的缓存设置可以大大的减少 HTTP请求。 很少变化的图片资源可以直接通过 HTTP Header中的Expires设置一个很长的过期头 ;变化不频繁而又可能会变的资源可以使用 Last-Modifed来做请求验证。 (1)Apa…

错题

1. 本题考查String对象的声明和赋值方式。C#中没有new String() 这种方式来构造字符串。故选 AC 2. 在CSS中,控制列表样式的属性有:list-style-type,list-style-position,list-style-image,list-style equals比较的是像…

通过微调JVM Garbage Collector减少Java IDE滞后

有没有想过为什么Eclipse / Netbeans会一直暂停一段时间? 特别是在您想向亲爱的同事展示代码中的内容时? 感觉很尴尬和尴尬,不是吗? 我发现大多数时间由于垃圾收集器的执行而导致IDE暂停。 JVM设计中的微妙元素很少起作用&#x…

centos8部署nginx

Nginx 部署 1.创建 www用户, UID、GID 皆是 501,通过cat /etc/passwd,检查是否存在www用户 ~]# groupadd -g 501 www ~]# useradd -u 501 -g www www ~]# cat /etc/passwd 2.下载相应版本 ~]# wget http://nginx.org/download/nginx-1.16…

javascript-发布订阅模式

说明:本篇文章转载自小火柴的蓝色理想的一篇博文。原文地址:http://www.cnblogs.com/xiaohuochai/p/8031564.html 发布—订阅模式又叫观察者模式,它定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖…

centos8部署Django项目---后台运行

参考:https://www.cnblogs.com/yoyoketang/p/10220941.html 一、安装 pip install django创建项目 django-admin startproject mysite打开项目配置settings.py文件 cd mysite/mysitesettings.py文件( DEBUG TrueALLOWED_HOSTS [127.0.0.1, localh…

python-列表list和元组tuple

list Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。 比如,列出班里所有同学的名字,就可以用一个list表示: >>> classmates [Michael, Bob, Tracy] >>&g…

jsf表单验证_动态表单,JSF世界期待已久

jsf表单验证新的PrimeFaces扩展版本0.5.0带来了新的DynaForm组件。 通常,如果知道行/列的数量,元素的位置等,则可以通过h:panelGrid或p:panelGrid构建非常简单的表单。 静态表单是正确的。 但是,如果在运行…

转载黑客是如何黑到你手机的?绝对涨姿势,一位黑客的Wi-Fi入侵实录!

声明:这是一虚构的故事,因此对图片均进行了模糊化处理。内容整理自网络! 故事的主人公小黑是一名从事IT相关工作的技术宅男。五一长假来临,宅在家中的他相当无聊,打开手机上的Wi-Fi模块,发现附近有将近10个…

linux安装pip

使用脚本安装和升级pip 要安装或升级pip,需要下载 get-pip.py. 地址:https://bootstrap.pypa.io/get-pip.py 然后运行以下命令 (需要管理员权限): $ wget https://bootstrap.pypa.io/get-pip.py $ python get-pip.py #查看pip版本 $ pip -V

我们如何意外地将Hibernate的JDBC流量增加了一倍

这篇文章描述了我最近使用Hibernate ORM的经验。 多年以来,该框架并没有让我感到惊讶,您可能会在使用它时遇到性能问题。 我以为我已经看完了,但是这次我又措手不及了。 该问题的基础是在对一个完全不相关的库进行故障排除时建立的&#xff…

html5——DOM扩展

元素获取 1、document.getElementsByClassName (class) 通过类名获取元素,以类数组形式存在。 2、document.querySelector(‘div’) 通过CSS选择器获取元素,符合匹配条件的第1个元素。 3、document.querySelectorAll(selector) 通过CSS选择器获取元素&am…

linux 系统安装mongodb数据库---方法1

参考:https://www.jianshu.com/p/994bc7b19b26 参考:https://blog.csdn.net/duan9015/article/details/106447942/ 1、制作 repo 文件 vim /etc/yum.repos.d/mongodb-org-4.2.repo[mongodb-org-4.2] nameMongoDB Repository baseurlhttps://repo.mongo…