Linux系统搭建多用户多目录不同权限访问的FTP服务器

1 安装服务

[root@host-192-168-9-19 home]# yum -y install vsftpd

2 创建访问目录

创建一个本地系统用户adapter并指定其家目录,并建立相应的子目录

[root@host-192-168-9-19 home]# useradd -d /home/adapter adapter -s /sbin/nologin
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
[root@host-192-168-9-19 home]# tree adapter/
adapter/
├── 打印机组
├── 公共组
├── 软件组
├── 外设组
└── 支撑组5 directories, 0 files
[root@host-192-168-9-19 home]# chmod 755 /home/adapter*
[root@host-192-168-9-19 home]# chown -R adapter:adapter /home/adapter/

3 创建用户数据文件

1、创建数据文本文件
我们需要主要在数据文本文件中必须一行账号一行密码,不要有空行,不要有空格
所有密码此处示例设为123456。

[root@host-192-168-9-19 home]# vim /etc/vsftpd/userlist.txt
admin
123456
test1
123456
test2
123456
test3
123456
test4
123456
test5
123456

2、生成数据文件并修改访问权限
db_load:一般系统都有安装,db4,db4-devel,db4-utils ,如果没有的话可以安装:

[root@host-192-168-9-19 home]# yum -y install db4*
[root@host-192-168-9-19 home]# db_load -T -t hash -f /etc/vsftpd/userlist.txt /etc/vsftpd/userlist.db
[root@host-192-168-9-19 home]# chmod 600 /etc/vsftpd/userlist.db

注:生成之后可将userlist.txt删除或备份。

4 修改pam配置

[root@host-192-168-9-19 home]# vim /etc/pam.d/vsftpd
##将原来的全部注释掉,加入:
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/userlist
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/userlist

注意:db=/etc/vsftpd/vsftpd_login 后面的.db必须去掉;64位机需要使用lib64(这里折腾了好久,有的是lib有的是lib64);

5 创建本地系统用户adapter对应的虚拟账户

虚拟用户需要通过本地系统用户来实现各种操作,因此要放在系统用户的同名文件夹下。每一个虚拟用户都要有一个同名的文件,文件里记载其权限以及可操作的目录;

[root@host-192-168-9-19 home]# mkdir /etc/vfstpd/adapter
[root@host-192-168-9-19 home]# cd  /etc/vfstpd/adapter
[root@host-192-168-9-19 home]# cat /etc/vsftpd/adapter/admin
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/home/adapter
[root@host-192-168-9-19 home]# cat /etc/vsftpd/adapter/test1
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
download_enable=YES
local_root=/home/adapter/软件组
cmds_denied=DELE

注:由于test系列用户权限一致,这里只展示test1用户配置信息
下面对各个关键字段进行解释

local_root=/home/ftp
anon_world_readable_only=NO
write_enable=YES (写权限)
anon_mkdir_write_enable=YES (新建目录权限)
anon_upload_enable=YES(上传权限)
anon_other_write_enable=YES(删除/重命名的权限)
cmds_denied=DELE(删除权限)

6 设置ftp服务配置文件

[root@host-192-168-9-19 home]# vim /etc/vsftpd/vsftpd.conf
##修改内容如下:
listen=YES
#表示vsftpd是以stand alone的方式来启动
connect_from_port_20=YES
#ftp数据传输的端口号
anonymous_enable=NO
#表示不允许匿名登录ftp服务器
local_enable=YES
#这个设置值必须为YES,在/etc/passwd内的账号才能以尸体用户的方式登录ftp服务器
write_enable=NO
#不允许用户上传数据
anon_upload_enable=NO
#表示匿名用户没有上传数据的功能
anon_mkdir_write_enable=NO
#表示匿名用户没有建立目录的权限
anon_other_write_enable=NO
#表示匿名用户没有删除与修改服务器上的文件及文件名等权限
chroot_local_user=YES
#将用户限制在自己的用户主目录之内(chroot)
chroot_list_enable=YES
#启动chroot写入列表的功能
chroot_list_file=/etc/vsftpd/chroot_list
#表明chroot_list文件位置
guest_enable=YES
#任何实体账号,均会被假设成为guest
guest_username=adapter
#指定访客的身份为adapter
virtual_use_local_privs=YES
#虚拟用户和本地用户有相同的权限
allow_writeable_chroot=YES
#表示用户只能访问自身所属目录
pam_service_name=vsftpd
#PAM模块的名称,主要用来作为身份认证之用
user_config_dir=/etc/vsftpd/adapter
local_umask=022
#表示实体用户新建的目录权限是755
xferlog_enable=YES
#用户上传与下载文件都会被记录下来
xferlog_file=/var/log/vsftpd.log
#日志文件路径及文件名

7 创建chroot_list文件

[root@host-192-168-9-19 home]# vim /etc/vsftp/chroot_list
##里面啥也不写

chroot_list文件默认是不存在的;主要功能是可以将某些账号的用户chroot建立在他们的默认用户主目录下。如果想要将某些实体用户限制在他们的主目录下而不许到其他目录去,可以启动这个设置项目

8 启动服务

[root@host-192-168-9-19 home]# systemctl start vsftpd.service
[root@host-192-168-9-19 home]# systemctl stop firewalld

9 设置多用户访问多目录

在做项目时,客户需要FTP同时访问两个目录,要清楚,在建FTP时,都是一个用户对应一个目录,当FTP用户登录后,就只访问当前目录,如果需要访问到其他目录,得另想办法。
刚开始以为使用链接可以实现这个功能,但是发现链接成功了,但是使用ftp是不可以访问的,因此使用链接访问多目录方法是不成功的。
解决方法:
使用mount的方法,把目录挂到,原来的目录中,
例如:用户test要同时访问到目录/data1、/data2
在test用户目录下新建两个目录test1、test2
然把把/data1、/data2挂到对应的test1、test2

mount --bind /data1 /home/test/test1
mount --bind /data2 /home/test/test2

以上信息只是在内存进行了inode的更改,所以服务器重启还会丢失。需要在/etc/fstab中添加目录挂载命令。

[root@host-192-168-9-19 home]# copy /etc/fstab /etc/fstab_bak 备份一下吧
[root@host-192-168-9-19 home]# vi /etc/fstab
##添加如下内容到文件中
/home/adapter/0_临时文件 /home/kylin/打印机组/0_临时文件 none bind 0 0
/home/adapter/0_临时文件 /home/kylin/软件组/0_临时文件 none bind 0 0
/home/adapter/0_临时文件 /home/kylin/支撑组/0_临时文件 none bind 0 0
/home/adapter/0_临时文件 /home/kylin/外设组/0_临时文件 none bind 0 0

Linux系统搭建多用户多目录不同权限访问的FTP服务器相关推荐

  1. linux 权限 x 表示,在Linux系统中,用户对目录拥有“x”权限,表示可以执行下列哪种操作?...

    在Linux系统中,用户对目录拥有"x"权限,表示可以执行下列哪种操作? 更多相关问题 通过花的中心只能作1个对称面称辐射对称花. 王叔和归纳了脉象( )种,规范了脉象名称. 车轮 ...

  2. Linux系统chmod误操作目录权限恢复方法

    Linux系统chmod误操作目录权限恢复方法 - 云+社区 - 腾讯云 Linux 中,如果意外误操作将根目录目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法 ...

  3. Linux系统搭建NFS网络共享存储

    Linux系统搭建NFS网络共享存储 一.NFS概述: NFS是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发.通过NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 ...

  4. linux系统中apache虚拟目录配置

    在搭建网站的时候,我们会经常在同一台服务器上面搭建多个站点,这时候就需要用到apache的虚拟机知识.下面就linux系统下apache虚拟目录的配置说简要说明: 1.源代码安装apache + PH ...

  5. linux目录形式,linux 系统下 ngnix 显示目录形式

    vi  /usr/local/nginx/conf/nginx.conf   #编辑配置文件,在server {下面添加以下内容: location  / { autoindex on; autoin ...

  6. Linux系统下文件与目录操作讲解

    Linux系统下文件与目录操作 在Linux系统中有一句话叫做,一切皆文件.上节我们说的I/O操作,对于普通I/O操作,都是打开.读写.关闭.这节我们通过stat结构体来了解文件的一些基本信息和本质特 ...

  7. 软raid1 重新同步_软RAID搭建基于linux系统搭建RAID5

    实验二.软RAID搭建-基于linux系统搭建RAID5 实验要求: 1)创建RAID5; 2)添加一个热备盘sdj 3)指定chunk为32k 4停止阵列,重新激活阵列 5使用热备盘,扩展阵列容量, ...

  8. Linux系统下文件与目录操作

    Linux系统下文件与目录操作  与其它操作系统一样,在Linux系统下用户的数据和程序也是以文件的形式保存的.所以在使用Linux的过程中,是经常要对文件与目录进行操作的.现在我们就以一个Windo ...

  9. 嵌入式Linux学习笔记(1-1)——linux系统搭建

    版权声明:本文为博主原创文章,未经博主允许不得转载. 学习嵌入式linux已经有2年时间,虽然时间不长,但一路走来遇到很多问题,绕了很多弯路.写这篇文章的目的是分享我的经验,以供初学者参考,希望能够帮 ...

最新文章

  1. 单片机中SDZ是什么意思_合泰单片机ADC转换程序
  2. 网站SEO优化的方法
  3. 史上最全的Linux常用——目录和文件管理命令——收藏这一篇就够了!(超全,超详细)
  4. C++描述杭电OJ 2005.第几天? ||
  5. 投票源码程序_[内附完整源码和文档] 基于JSP实现的影视创作论坛系统
  6. 设计模式之单一职责原则
  7. 快速实现一个室内空气质量检测仪
  8. 移动端video播放时不弹出页面层
  9. 基础的c语言题目,几个c语言的基础题目
  10. Django_RBAC_demo2 升级版权限控制组件
  11. 空悬指针和野指针(Dangling pointer and wild pointer)
  12. 剑指MBA?Acer发布全高清触控Win8平板Aspire S7
  13. php学习笔记-4.登录超时的设置
  14. Android之水滴落下的下拉刷新
  15. 人脑(科普类)书籍视屏学习资料推荐(不定时更新)
  16. mysql user导出权限_mysql快速导出user权限
  17. geany设置运行linux,Linux强大IDE——Geany配置说明
  18. Radis-哨兵服务
  19. 干货|人声混音的4大技巧与思路 MZD Studios
  20. 软考信息系统监理师:2016年4月8日作业

热门文章

  1. 第36.5节 动画-跟踪运动中物体的操作器
  2. 18 款低代码平台!开发解放双手
  3. 【报告分享】2021中国消费者洞察-埃森哲(附下载)
  4. 服务器减少一半,TDengine在华自科技的落地实践
  5. Android USB HID整理
  6. ffmpeg缩放视频尺寸
  7. intell idea怎么恢复默认设置
  8. openvino杂烩
  9. (C++/python)LeetCode 589. N叉树的前序遍历
  10. 程序员生涯快一年感悟