Advertisement

Linux第十二章-虚拟用户访问FTP.mp4

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本视频讲解如何在Linux系统中设置虚拟用户以安全地访问FTP服务,涵盖配置过程及注意事项。适合需要限制用户权限的技术爱好者和管理员学习。 实验报告 姓名:李勰 所在班级:hb3017 日期:2020年7月7日 ### 实验任务: #### 一、搭建FTP服务环境: 在安装vsftpd服务器之前,关闭防火墙和SELinux。 ``` systemctl stop firewalld systemctl disable firewalld setenforce 0 ``` 挂载并安装软件包(服务端与客户端): ```bash mount /dev/cdrom /mnt/ (挂载) rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm (安装服务端) rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm (安装客户端) ``` #### 二、构建匿名可上传的FTP服务器: 操作目录为 `/var/ftp/pub` 步骤如下: 1. 修改主配置文件,允许匿名用户上传。 ```bash anon_upload_enable=YES ``` 2. 重启服务以应用更改。 ```bash systemctl restart vsftpd ``` 3. 更改目录权限以便于写入: ```bash chmod o+w /var/ftp/pub/ ``` 4. 查看并验证配置是否正确,查看目录的详细信息。 5. 扩展:允许匿名用户创建、删除和覆盖文件。 ```bash anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 vim /var/ftp/pub/.message (提示信息) dirmessage_enable=YES ``` #### 三、构建本地用户验证的FTP服务器: 为zhangsan, lisi和wangwu创建本地账户,并禁锢这些用户在其主目录中。 ```bash useradd -s /sbin/nologin zhangsan useradd -s /sbin/nologin lisi useradd -s /sbin/nologin wangwu ``` 1. 修改配置文件,启用chroot功能: ```bash vim /etc/vsftpd/vsftpd.conf chroot_local_user=YES allow_writeable_chroot=YES ``` 2. 重启服务以应用更改。 #### 四、结合user_list限制用户访问权限: 仅允许zhangsan和lisi进行FTP操作。 1. 修改user_list文件,添加需要的用户名。 ```bash vim user_list ``` 2. 更新主配置文件设置: ```bash userlist_enable=NO (不禁用列表中的用户) ``` #### 五、修改服务器监听地址及端口: 将服务改为在特定IP上运行,并更改默认端口号为2121。 1. 修改vsftpd.conf,添加新的listen_port值。 ```bash listen_port=2121 ``` 2. 再次重启服务并验证: ```bash systemctl restart vsftpd netstat -anutp |grep vsftpd ``` #### 六、设置FTP虚拟用户: 创建虚拟用户列表,生成数据库文件,并进行权限管理。 步骤包括: - 创建和维护vusers.list文件; - 通过db_load工具生成Berkeley DB格式的数据库文件; - 配置PAM认证模块以支持新建立的虚拟账户。 1. 创建并编辑`/etc/vsftpd/vusers.list` 2. 使用db_load创建用户数据库。 ```bash rpm -ivh libdb-utils-5.3.21-19.el7.x86_64.rpm db_load -T -t hash -f vusers.list vusers.db ``` 3. 设置权限保证安全性: ```bash chmod 600 vusers.* ``` 4. 创建映射用户。 ```bash useradd -d /viruser -s /sbin/nologin virtual ``` 5. 编辑PAM认证文件,添加虚拟用户的验证配置。 6. 修改vsftpd.conf以启用guest功能,并指定新的pam服务名: ```bash guest_enable=YES guest_username=virtual pam_service_name=vsftpd.vu allow_writeable_chroot=YES user_config_dir=/etc/vsftpd/dir (创建目录) ``` 7. 为虚拟用户设置独立的配置文件,以控制其访问权限。 实验步骤与结果验证: 详细地执行以上所有步骤,并在每一步完成后进行测试和验证。通过这些操作,可以确保FTP服务按预期工作并具备所需的安全性和功能性。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Linux-访FTP.mp4
    优质
    本视频讲解如何在Linux系统中设置虚拟用户以安全地访问FTP服务,涵盖配置过程及注意事项。适合需要限制用户权限的技术爱好者和管理员学习。 实验报告 姓名:李勰 所在班级:hb3017 日期:2020年7月7日 ### 实验任务: #### 一、搭建FTP服务环境: 在安装vsftpd服务器之前,关闭防火墙和SELinux。 ``` systemctl stop firewalld systemctl disable firewalld setenforce 0 ``` 挂载并安装软件包(服务端与客户端): ```bash mount /dev/cdrom /mnt/ (挂载) rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm (安装服务端) rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm (安装客户端) ``` #### 二、构建匿名可上传的FTP服务器: 操作目录为 `/var/ftp/pub` 步骤如下: 1. 修改主配置文件,允许匿名用户上传。 ```bash anon_upload_enable=YES ``` 2. 重启服务以应用更改。 ```bash systemctl restart vsftpd ``` 3. 更改目录权限以便于写入: ```bash chmod o+w /var/ftp/pub/ ``` 4. 查看并验证配置是否正确,查看目录的详细信息。 5. 扩展:允许匿名用户创建、删除和覆盖文件。 ```bash anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 vim /var/ftp/pub/.message (提示信息) dirmessage_enable=YES ``` #### 三、构建本地用户验证的FTP服务器: 为zhangsan, lisi和wangwu创建本地账户,并禁锢这些用户在其主目录中。 ```bash useradd -s /sbin/nologin zhangsan useradd -s /sbin/nologin lisi useradd -s /sbin/nologin wangwu ``` 1. 修改配置文件,启用chroot功能: ```bash vim /etc/vsftpd/vsftpd.conf chroot_local_user=YES allow_writeable_chroot=YES ``` 2. 重启服务以应用更改。 #### 四、结合user_list限制用户访问权限: 仅允许zhangsan和lisi进行FTP操作。 1. 修改user_list文件,添加需要的用户名。 ```bash vim user_list ``` 2. 更新主配置文件设置: ```bash userlist_enable=NO (不禁用列表中的用户) ``` #### 五、修改服务器监听地址及端口: 将服务改为在特定IP上运行,并更改默认端口号为2121。 1. 修改vsftpd.conf,添加新的listen_port值。 ```bash listen_port=2121 ``` 2. 再次重启服务并验证: ```bash systemctl restart vsftpd netstat -anutp |grep vsftpd ``` #### 六、设置FTP虚拟用户: 创建虚拟用户列表,生成数据库文件,并进行权限管理。 步骤包括: - 创建和维护vusers.list文件; - 通过db_load工具生成Berkeley DB格式的数据库文件; - 配置PAM认证模块以支持新建立的虚拟账户。 1. 创建并编辑`/etc/vsftpd/vusers.list` 2. 使用db_load创建用户数据库。 ```bash rpm -ivh libdb-utils-5.3.21-19.el7.x86_64.rpm db_load -T -t hash -f vusers.list vusers.db ``` 3. 设置权限保证安全性: ```bash chmod 600 vusers.* ``` 4. 创建映射用户。 ```bash useradd -d /viruser -s /sbin/nologin virtual ``` 5. 编辑PAM认证文件,添加虚拟用户的验证配置。 6. 修改vsftpd.conf以启用guest功能,并指定新的pam服务名: ```bash guest_enable=YES guest_username=virtual pam_service_name=vsftpd.vu allow_writeable_chroot=YES user_config_dir=/etc/vsftpd/dir (创建目录) ``` 7. 为虚拟用户设置独立的配置文件,以控制其访问权限。 实验步骤与结果验证: 详细地执行以上所有步骤,并在每一步完成后进行测试和验证。通过这些操作,可以确保FTP服务按预期工作并具备所需的安全性和功能性。
  • 《Antennas》版,
    优质
    本书为《Antennas》第二版的部分章节汇编,涵盖了从第十章到第十五章的内容,深入探讨了天线理论与应用的关键方面。 《天线》(第二版) 作者:约翰·D·克劳斯 出版商:麦格劳-希尔公司 1988年 第10章至第15章
  • Linux机配置IP以访外网
    优质
    本教程详细介绍在Linux虚拟机中配置IP地址以便连接至互联网的方法,涵盖网络接口识别、静态IP设置及验证连接等步骤。适合初学者快速上手。 1. 设置网络为桥接模式:(以Vmware为例,在安装过程中也可以进行设置) 选中当前的操作系统,点击虚拟机 -> 设置 -> 硬件 -> 网络适配器,勾选桥接模式。 2. 修改网络配置在命令行界面输入`vi /etc/sysconfig/network-scripts/ifcfg-eth0`(这里的`eth0`代表这张网卡;如果有第二张网卡,则需要修改为ifcfg-eth1): 可以开始修改网络配置了,将BOOTPROTO的值从dhcp改为static。 将IPV6INIT设置为no(不使用ipv6)。 新增一条 `IPADDR=192.168.0.115`(这是指定的 IP 地址) 和 `GATEWAY` 的配置。
  • 版__JDBC数据库访技术.ppt
    优质
    本ppt介绍了JDBC数据库访问技术的第二版第四章内容,涵盖了JDBC的基本概念、使用方法及其实例应用,帮助学习者掌握如何在Java应用程序中高效地进行数据库操作。 数据库是Web应用程序的重要组成部分,在Java Web应用程序中,通过Java数据库连接(JDBC)来实现与数据库的访问。JDBC为开发人员提供了一个标准的应用程序接口(API)。本章将介绍如何使用JDBC驱动程序连接到数据库,并利用连接池技术进行高效连接设计的方法、步骤和实例。
  • SLAM四讲所需数据集
    优质
    本简介针对《SLAM十四讲》第二版中第十二章所需的实验数据集进行介绍,包括数据集的获取途径、格式说明及应用案例分析。 SLAM(Simultaneous Localization and Mapping)是机器人领域中的一个核心问题,涉及到在未知环境中移动的机器如何构建地图并确定自身位置。《SLAM十四讲》是一本深入介绍这一主题的经典著作,作者为英国剑桥大学的Simon J. Julier和John Urry。第二版第十二章中可能会讨论更多关于数据集的应用,这些数据集对于理解和实践SLAM算法至关重要。 在SLAM研究中,数据集扮演着至关重要的角色,因为它们提供了真实世界的环境信息,使得开发者能够测试并验证各种场景下的算法有效性。常见的传感器数据包括激光雷达(LIDAR)扫描、摄像机图像、惯性测量单元(IMU)的数据以及GPS坐标等。通过对这些数据的处理和分析,SLAM算法可以学习到环境中的几何特征,并进行定位及地图构建。 《SLAM十四讲》第二版第十二章中所提及的数据集可能包括了用于展示或练习目的的各种实际数据。例如,这些数据可能会来自公开的SLAM数据库如Kitti、TUM RGB-D和EuRoC MAV等。其中,Kitti主要用于自动驾驶汽车中的SLAM研究,并包含高精度GPS/IMU轨迹、多视图立体图像及激光雷达扫描信息;而TUM RGB-D则专注于室内环境的数据采集,提供RGB-D相机数据,适合基于视觉的SLAM研究。此外,EuRoC MAV针对无人机的应用场景提供了复杂室内外环境下的飞行视频。 对于第十二章的学习者来说,在处理这些数据时可能会涉及到预处理步骤如去除噪声、传感器校准和不同设备间的时间同步等操作。同时还会涉及特征提取技术(例如SIFT、SURF或ORB)以及如何使用这些视觉特征进行匹配,进而构建图优化问题。SLAM算法通常会生成一个包含位姿信息及地图点的因子图,并通过最小化误差来实现整个系统的最优解。 关于压缩包中的ch13可能是一个错误标记(实际应为第十二章),但这或许意味着第十三章的数据也与第二版第十二章的学习相关,或者它可能是附加内容。如果其中包含具体数据,则需要先解压文件,并利用特定软件或编程语言如Python或C++来读取和处理这些信息。 通过《SLAM十四讲》的深入学习,读者不仅能掌握理论知识,还能了解如何运用真实世界的数据进行算法的学习与验证过程,这对于从事机器人导航、自动驾驶等领域工作的专业人士来说是必不可少的能力。
  • C++访Python Miniconda环境
    优质
    本教程介绍如何在C++程序中调用Miniconda环境下安装的Python模块和脚本,实现语言间的交互与数据处理。 在IT领域内跨语言通信是一个常见的需求,例如,在C++应用中调用Python代码以利用其丰富的库资源。本段落将详细介绍如何从C++环境中调用安装于Miniconda虚拟环境中的Python函数,并探讨应用程序打包时包含该环境的方法,从而便于部署。 首先了解一下**Miniconda**:它是由Anaconda公司提供的一款小型版本软件包管理系统,包含了Python解释器、Conda(一个用于管理依赖关系的工具)以及一些基础科学计算库。相比完整的Anaconda安装,Miniconda占用空间较小,并且适合用来创建自定义化的Python环境,特别适用于开发独立的应用程序。 在C++中调用Python代码通常有两种方法:一是使用**Python C API**;二是采用第三方库如`boost::python`。前者是官方提供的用于从C/C++环境中嵌入和操作Python的接口,而后者则属于Boost库的一部分,它提供了一个更高级别的交互方式以简化二者之间的通信。 下面是一个简单的示例展示如何使用Python C API在C++中调用Python函数: ```cpp #include int main() { Py_Initialize(); PyRun_SimpleString(print(Hello from Python!)); Py_Finalize(); return 0; } ``` 在这个例子中,`Py_Initialize()` 和 `Py_Finalize()` 分别用于初始化和清理Python环境;而`PyRun_SimpleString()`函数执行了给定的Python语句。 当你需要调用安装在Miniconda虚拟环境中的Python代码时,请确保C++应用能够正确地定位到对应的解释器及库文件。这通常涉及设置特定的环境变量,例如指向Miniconda安装目录下`bin`子目录的路径(如Linux系统上的`LD_LIBRARY_PATH`或Windows下的`PATH`)。 为了使包含Python代码的应用程序便于打包和部署,可以考虑以下策略: 1. **静态链接**:将所有必要的Python库文件直接编译进你的C++应用中。这使得应用程序能够独立运行但可能导致其体积增大。 2. **容器化技术**:使用Docker等工具将应用与Miniconda环境封装在一个单独的环境中,这种方式可以保持系统整洁度且易于维护。 3. **自包含Python执行文件生成器**:利用如`py2exe`(Windows)或`cx_Freeze`这样的工具来创建一个独立可运行的应用程序捆绑包。这种方法适合于那些希望用户无需额外安装其他软件就能直接使用的场景。 4. **虚拟机映像打包**:构建一个包括应用及Miniconda环境在内的完整虚拟机镜像,然后分发给目标机器使用。 无论选择哪种方式,在处理Python路径问题和C++与Python间的数据类型转换时都要格外小心。在实际项目中(例如`pythondemo`),你可能会看到如何通过`boost::python`或Python C API中的PyObject*类型来调用带有参数的函数的具体示例。 总之,从C++环境中调用Miniconda虚拟环境下的Python函数是一种强大且灵活的技术手段,它使您能够在保持高效性能的同时利用到Python的强大库支持。而在打包和部署阶段选择合适的方案将极大影响应用程序的可移植性和稳定性。
  • VMware访BIOS的方法
    优质
    本文介绍如何在VMware虚拟机中访问和设置BIOS,帮助用户解决与硬件配置、启动选项相关的各种问题。 在VMware启动画面中有三个键可以用来进入BIOS:F2用于进入BIOS设置;F12用于网络启动;ESC用于调整启动顺序。请注意要在点击进入VMware环境后使用这些按键。
  • 解决Linux端MySQL数据库远程访题的方法
    优质
    本文将详细介绍如何解决在虚拟机中的Linux环境下配置MySQL数据库以实现远程访问的问题,包括必要的安全措施和步骤。 在IT项目开发过程中,数据库的远程访问能力至关重要,尤其是在使用虚拟机部署服务的情况下。本段落将详细介绍如何解决Linux系统上的MySQL数据库无法从外部进行远程访问的问题,并提供两种有效的解决方案。 **第一种方法:** 1. 登录到MySQL数据库中,在Linux终端输入命令`mysql -u root -p`并按照提示输入root用户的密码,之后你将会进入MySQL的命令行界面。 2. 在这个控制台里给root用户授予远程访问权限。执行以下SQL语句: ``` GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY MyPassword WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 这里,`root`是用户名,`%`表示允许所有IP地址的机器可以进行远程访问连接。而`ALL PRIVILEGES`则代表授予全部权限。 3. 确保iptables防火墙设置中包括了对MySQL 3306端口开放规则: 打开iptables配置文件: ``` vi /etc/sysconfig/iptables ``` 添加如下行: ``` -A INPUT -m state --state NEW -p tcp --dport 3306 -j ACCEPT ``` 完成修改后,重启服务以应用新设置: ``` service iptables restart ``` 使用命令`iptables -L`来检查新的规则是否已经生效。 4. 在其他机器上尝试连接到MySQL数据库: ``` mysql -h your_server_ip_address -u root -p ``` **第二种方法:** 此方法与第一种类似,同样是通过在MySQL控制台中执行SQL语句给root用户授权远程访问权限。具体操作如下: ``` mysql> GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY your_password WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; ``` 同样需要确保iptables防火墙设置中包含对MySQL 3306端口的开放规则。 **总结:** 解决Linux虚拟机上MySQL数据库远程访问问题的关键在于正确配置用户的权限以及调整防火墙规则。需要注意的是,打开TCP 3306端口可能会带来安全风险,因此在生产环境中应仅允许特定IP地址进行连接,并确保使用强密码来增强安全性。此外,定期检查和更新你的网络安全策略是防止未经授权的访问的重要措施之一。如果你有任何其他有效的解决方案,请分享出来以便大家共同学习提高技术水平。
  • 详细解析CentOS7上FTP服务的搭建(含访设置)
    优质
    本教程详尽讲解了如何在CentOS 7系统中搭建FTP服务器,并配置虚拟用户访问功能,涵盖安装vsftpd、创建虚拟用户及权限管理等步骤。 最近在搭建Oracle在Linux系统下的集群环境,在此过程中发现对于Linux系统了解甚少。特别是在CentOS7环境下配置FTP服务的过程中遇到了一些挑战。为了只提供FTP访问而不让用户通过FTP账户登录到Linux系统,使用vsftpd的虚拟用户功能是一个很好的解决方案。 基于虚拟用户的FTP服务器配置步骤如下: 一、在构建vsftpd的虚拟用户时,通常我们会创建一个标准的Linux用户(例如通过useradd命令),以允许该用户访问FTP。然而,在某些情况下我们只想提供FTP服务而不希望用户提供账户登录到Linux系统中去。常规的方法是限制用户的权限,但这并不能完全防止他们直接登录到Linux系统里。 因此,使用vsftpd提供的虚拟用户功能是一个更为有效的选择。这种方法可以让我们创建一个仅用于FTP访问的账号,并且这些账号不能被用来进行其他形式的系统登陆操作。
  • 优质
    第十三章:在这关键的一章中,角色面临重大抉择,故事线交织复杂,悬念迭起,为整个叙述带来转折点。 《十三》是一款结合了技能、策略与机会的纸牌游戏,因其独特的玩法深受玩家喜爱。游戏中,玩家们通过运用手中的卡片及巧妙设计的战略来争取胜利,并且需要把握时机将1至13数字范围内的所有卡牌以特定组合方式出完。 接下来我们将探讨如何利用TypeScript编程语言开发《十三》这款游戏以及可能涉及的技术点。作为JavaScript的超集,TypeScript为开发者提供了静态类型检查、接口和泛型等特性,有助于构建大型复杂的应用程序,在编写游戏代码时可以显著提高可读性和维护性,并减少错误的发生。 1. 类型定义:在实现《十三》的过程中,每张牌都可以通过一个类来表示。使用TypeScript的类型系统为这些类定义清晰接口将确保在整个项目中数据的一致性。 2. 接口:游戏规则和逻辑可以通过抽象接口进行设计,比如可以创建一个`Player`接口用于封装玩家分数、手牌等属性及出牌的行为,这有助于更好地组织代码,并便于后续的扩展与测试工作。 3. 泛型:当处理卡片堆或玩家的手牌时,我们可以利用TypeScript提供的泛型特性来建立能够容纳任意类型卡的数据结构。这样既能保证灵活性又能确保插入和取出的卡片符合预期要求。 4. 静态类型检查:静态类型检查是TypeScript的一个重要功能,在编译阶段可以发现许多潜在错误从而避免运行时可能出现的问题,这对于实现《十三》中的策略部分来说尤为重要。 5. 模块化:支持ES6模块化的特性使得将游戏的不同组成部分(如用户界面、逻辑处理和网络通信)划分为独立的模块成为可能。这有助于提高代码组织性和可重用性。 6. 装饰器:通过使用装饰器可以在不修改原有代码的情况下添加额外的功能或信息,例如记录每个玩家的历史操作以便于回放和分析。 7. 异步编程:如果《十三》支持在线多人对战,则异步编程就显得至关重要。TypeScript的Promise及async/await语法使得处理网络请求以及事件变得更加简洁易读。 综上所述,在开发过程中使用TypeScript能够提供强大的工具和支持,帮助开发者构建稳定、高效且易于维护的游戏代码,从而创作出一款既富有挑战性又具备高度可玩性的《十三》游戏。