1.3第二周 星期二Samba、FTP

news2024/11/17 19:32:41

目录

01

Samba文件共享服务

Samba服务基础

2.主配置文件

02

linux文件传输服务

1.用户访问的Samba

03

FTP服务概述

1.vsftp知识预备

04

操作流程:

1.使用时记得装ftp的包:yum install ftp -y

2.装完之后启动服务:systemctl start vsftpd

3. 连接另一台主机验证能否正常连接:ftp 192.168.152.131

4. 开启上传权限:

4. 用户列表:(保证本地用户可以登录)

5. 更改配置文件,实现对本地用户控制:

6. 生成一个大文件:

7. 为匿名用户限速:

05

虚拟用户

1.流程

1. 建立虚拟用户:在vsftopd文件夹下建立 vuser.list 文件

2. 转换:

3.设置parm认证:

4.虚拟用户独立配置文件:

01

Samba文件共享服务

  1. Samba服务基础

看系统是什么内核:uname -r

查看红帽的:cat /etc/rehat-release

显示当前系统主机名版本号时间架构等信息:uname -a

CIFS:通用互联网文件系统

家用路由使用的是smb 协议

smb端口:UDP137、 138 ;  TCP139、445 

查看端口:ss、netstate

使用yum查看指定的软件包:yum lsit | grep samba

yum 装包: yum install samba -y

samba 安装完之后会生成对应的配置文件,放在:

配置文件:/etc/samba/

主配置文件:/etc/samba/smb.conf

检查配置文件工具:testparm

涉及到两个进程:

smbd : 文件及打印机等资源共享访问

nmbd:提供基于netbios 名称解析

2.主配置文件

服务大概分两种

[global] : 全局设置 ; 局部设置

[homes]:用户家目录的共享设置

[printers] : 打印机共享设置

[user]  用户自定义共享

workgroup:定义工作组名称

server string: 服务器的描述信息

security: 认证方式(安全级别) share =匿名  user=需要用户名和密码 server=其他主机负责认证

domain=由域控制器 进行认证  ads

log file 定义日志文件位置

passdb backend 设置共享账户密码的文件类型

smbpasswd密码文件存放在smbpasswd 中; tdbsam = passdb.tdb

comment 共享的描述信息

path:定义共享的路径

browseable :共享在“网上邻居”是否可见

guest ok 是否允许所有人访问,等效于“public”

writable:是否可写,与read only的作用相反

read only 是否只读

02

linux文件传输服务

1.用户访问的Samba

密码文件:/etc/samba/

正常放在/var/lib/samba/private/

设置共享的步骤:

修改smb.conf-------设置共享(目录权限)---启动相关服务-----访问共享

设置共享用户:

1. 保证系统中存在对应用户,如果没有,用useradd新建一个 useradd username

2. 为用户设置访问samba的密码(用户访问samb的密码跟登录系统的密码可以不一样)

设置密码(-a添加用户):pdbedit-a -u username(用户名)

  1. 查看所有Samba 用户信息:pdbedit -L p

用户详细信息:pdbedit -Lv username  

删除用户:pdbedit -x username  

2.启动服务 systemctl restart smb nmb

4. 访问共享 :

查看共享:smbclient -L    //ip (主机名)

访问共享:smbclient   //ip(主机名) 共享名 -U username  

5. 用户访问控制:

valid users = hello,test    允许访问共享资源的用户

valid users = hello,@test  允许访问共享资源的组

ivalid user =hello,@test   禁止访问共享资源的用户

允许与禁止谁的优先级高:

read list =hello , @test  只读用户列表

write list =hello , @test  可写用户列表

需求:

两个共享 share manager 

访问共享的用户:admine jingliq ,jingli2 @managers

  1. share 可被所有人访问,只用admin能上传
  2. manager 只允许managers组的用户以及admin(admin可上传&下载)

1. mkdir /share /manager

cd /

ls

2. 建立相应的用户:

useradd admin

useradd jingli1

useradd jingli2

3. 设置访问samb 的密码:

pdbedit -a -u admin

pdbedit -a -u jingli1

pdbedit -a -u jingli2

4. 建立组

查看:cat /etc/group

groupadd -g 1500 managers

把经理1 经理2添加进managers组里:

gpasswd -M jingli1, jingli2 managers

5. 设置最大权限

chmod 777 /share/ /manager/

6. 修改 samb 配置文件

vim /etc/samba/smb.conf

进去之后:添加[share] 及下面的:

7. 重启、排错

systemctl restart smb nmb

查看服务状态:systemctl status smb nmb

  1. 可能会出些问题 ifconfig

有这个的话执行停掉: systemctl stop libvirtd.service

从开机启动项中去掉:systemctl disable libvirtd.service

重启系统:reboot

  1. 重启smb

systemctl restart smb nmb

systemctl status smb nmb

ifconfig查看本机ip

smbclient -L 192.168.1.3

smbclient -L 192.168.1.3 -U admin(指定用户名)

ls /home/

匿名访问:

smbclient //共享名:192.168.152.131/share

新开一个终端:cd /share/

ls:查看共享里有哪些东西

!ls :查看本地的

put 文件 : 上传

get a :下载

vim /etc/samba/smb.conf

systemctl restart smb nmb

smbclient //192.168.1.3/manager -U jingli1

ls

打开一个新的终端:cd /manager/

touch hello

回到原先的终端:输入get hello

put initial-setup-ks.cfg

quit

smbclient //192.168.152.131/manager -U admin

put initial-setup-ks.cfg

ls

smbclient //192.168.152.131/manager

id hello

useradd hello

pdbedit -a -u hello

smbclient //192.168.152.131/manager -U hello

测试:需要额外建立一个用户

用jingli1 登录 能否上传、下载

用jingli2登录 能否上传、下载

新建一个hello 的用户,给他设置一个smbclient 密码看能否连接。

测试jingli1:

smbclient //192.168.1.152.131/manager -U jingli1

ls

!ls

quit

匿名用户访问:

smbclient //192.168.152.131/manager

用hello用户测试:

smbclient //192.168.152.131/manager -U hello

设置上传文件 & 目录的默认权限

目录的权限:directory mask = 07

文件的权限:create mask = 0644

账号映射:(添加到全局设置)

username map = /etc/samba/smbusers 制定账号映射文件

admin = test1

如果想要启用账号映射功能改完之后要记得重启一下这个服务:vim /etc/samba/smbusers

smb共享使用命令:

ls put get

!ls /help

切换本地位置lcd /root,切出来之后还是刚刚那个位置

访问控制(添加到全局设置):

hosts allow    (优先级高)允许的主机

hosts allow = 192.168.2. EXCEPT 192.168.1.100

hosts deny    拒绝的主机

正解:host www.a.b.com

反解:host 192.168.1.4

mount -o username=admin  //192.168.1.3/share /mnt/samba/share

 

 

 

不推荐此排错方法

03

  1. FTP服务概述

 

1.vsftp知识预备

找rpm 包的网站:rpmfind.net

vsftp:

主动模式 & 被动模式

端口:20 控制连接,用于上传下载数据

      21 发送 FTP 命令信息

匿名、 本地、虚拟

ftp 连接服务器

filezilla 图形界面工具

工作目录:/etc/vsftpd/ 

用户控制文件:/etc/vsftpd/ftpusers&user_list  

ftpusers=黑名单

首先安装 :yum install vsftpd -y

主配置文件:/etc/vsftpd/vsftpd.conf

在配置文件中查找带有listen字段的行:末行模式下输入:/listen

过滤带“#”,过滤 空行 查看配置文件:cd /etc/vsftpd/

  1.  grep -v “^#” vsftpd.conf | grep -v “^$”
  2.  cat vsftpd.conf | grep -v “^#

       查看 $ 时:cat -A vsftpd.conf

独立的服务响应速度快,但是浪费资源。

listen 运行方式:

listen=NO

临时的服务,统一由一个用户管理:提高资源利用率,节约资源,响应慢。

listen_address=IP 定义监听的IP 地址

listen_port=21 监听端口

是否可写(执行允许下载这个就别开了):write_enable

download_enable :是否允许可下载

uerlist_enable: 是否启用用户列表功能

userlist_deny : 是否禁用user_list 中的用户

max_clients=0 : 最大客户端数量

max_per_ip=0  每个IP地址的最大连接数

匿名用户相关的:

是否启用匿名用户anonymous_enable=YES  、 anonymous

匿名用户上传文件的权限掩码anon_umask=022

匿名用户的根目录:anon_root=var/ftp

是否允许上传:anon_upload_enable

是否允许创建目录:anon_mkdir_write_enable

是否开放其他的写入权限 删除 改名:anno_other_write_enable

限速 字节/秒:anon_max_rate=0

本地用户:

是否允许本地用户登录:local_enable

本地用户上传文件的权限掩码:local_umask=022

本地用户的根目录:local_root=/path/

是否限制本地用户:chroot_local_user

本地用户:就是在:vim /etc/passwd 中有记录

本地用户限速:local_max_rate=0

ctrl shift T 打开新的端口

ctrl shift n 打开新的窗口

 

04

  1. 操作流程:

修改配置文件-------启动服务--------------ftp(工具)

1.使用时记得装ftp的包:yum install ftp -y

2.装完之后启动服务:systemctl start vsftpd

查看端口:lsof -i :21  或 netstat  或 ss

3. 连接另一台主机验证能否正常连接:ftp 192.168.152.131

匿名用户:anonymous

每执行一次操作都会记录下一个返回值,可用 ls 查看。 

另一台主机的默认共享位置:cd /var/ftp/

        1. 到被连接的主机下,切换到 ftp 目录下:cd /var/ftp/

ls

        2.  cd pub/

在pub 下随便新建文件进行操作

        3.回到原主机:

到pub下: cd pub  

查看进行的操作:ls 

在原主机中连接模式下输入 ? 可以查看有哪些命令可供使用:

4. 开启上传权限

vim /etc/vsftpd/vsftpd.conf

权限写到最后面

开匿名用户上传权限需要在 原主机 配置文件中添加

anno_upload_enable=YES

anno_mkdir_write_enable=YES

anno_other_write_enable=YES 是否开放其他的写入权限 删除,改名

               为了方便进行管理:

如果要开启实名的就把匿名的关掉:

 如果开启匿名的就把实名的关掉:

  注意:目录在本地的权限 如果改为 读写执行 : 首先:cd /var/ftp/ 然后:chmod 777 pub

ftp 连接上:其他主机或本主机都可以

anonymous

cd pub/

ls

!ls

lcd /root

!ls

上传:put initial-setup-ks.cfg remote:initiall-setup-ks.cfg

ls

4. 用户列表:(保证本地用户可以登录)

查看本地有哪些用户:cat /etc/passwd

随便找个用户hello 然后设置密码:passwd hello

连接本地用户:ftp 本地IP

输入用户名

输入密码

 证明成功:

ls

查看所在位置:pwd

到根目录下:cd /

ls

本地用户没问题,退出

5. 更改配置文件,实现对本地用户控制:

userlist_enable=YES

userlist_deny=NO

userlist_enable

vim /etc/vsftpd/vsftpd.conf

保存

重启服务:systemctl restart v vsftpd

到 另一台主机中把 用户添加进去:

cd /etc/vsftpd/  

ls

vim user_list

把 hello 添加进去

开始连接 :

ftp:192.168.152.131

输入用户名密码

最后要把配置文件改回去

把服务重启:systemctl restart vsftpd

ftp 192.168.152.131

输入用户名:root 密码

pwd

cd /etc/vsftpd/

ls

进入ftpusers中:vim ftpusers

把root注释掉

如果root用户无法的登录ftp 记得查看/etc/vsftpd/ftpusers文件中的相关设置。将指定用户名注释掉。

 白名单

使用相应的字段固定被动模式的端口号。(不要与现有已用模式的端口号冲突)

pasv_enable=YES

pasv_min_poat=25100    0不限制

pasv_max_poat=25200   

6. 生成一个大文件:

vim ftpusers

cd /var/ftp/pub/

ls

dd if=dev/zero of=bigfile bs=1M count=1024

查看生成的文件的权限,能不能读:ll -h

cd

ftp 192.168.152.131

用户名:anonymous

登不进去说明配置文件有问题,配置好了之后重启;

systemctl restart vsftpd

ftp 192.168152.131

ls

cd pub

可以看到上传的文件:ls

下载文件:get bigfile

7. 为匿名用户限速:

vim /etc/vsftpd/vsftpd.conf

重启:systemctl restart vsftpd

ls

删除下载的文件:rm -fr bigfile

ftp 192.168.152.131

anonymous

cd pub

get bigfile

卡住了,扔到后台去,强制杀死后台进程:kill -9 %1

把大文件删掉,重新生成一个:

cd /var/ftp/pub/

ls

rm -fr bigfile

dd if=dev/zero of=bigfile bs=1M count=2

cd

ls

查看已下载的进度:ll-h

rm -fr bigfile

ftp 192.168.152.131

anonymous

ls

cd pub

get bigfile

05

虚拟用户

1.流程

建立虚拟用户文件:-----转换文件-------设置pam------启动服务

1. 建立虚拟用户:在vsftopd文件夹下建立 vuser.list 文件

pwd

cd /etc/vsftpd/

ls

建立虚拟用户:vim vusers.list :

用户名:hello

密码:123

用户名2:

密码2:

2. 转换:

db_load -T -t hash -f vusers.list vusers.db

T 允许从文件读取数据

t 制定数据库类型以算法

f 制定用户名文件

转换:db_load -T -t hash -f vusers.list vusers.db

查看是否转换成功:

ls

cat vusers.db

调整文件权限:chmod 600 vusers.*

 ll

建立一个用来与账户产生关联的普通用户:

useradd -d /var/ftproot(指定家目录) -s /sbin/nologin vftp(用户名)

建立用来关联虚拟用户的系统账号:

chmod 755 /var/ftproot/

3.设置parm认证:

parm认证相关的文件:vim /etc/pam.d/vsftpd.vu

拷贝改名删除

#%PAM-1.0

修改配置文件:vim /etc/vsftpd/vsftpd.conf

    vim /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.vu  (定义认证文件)

guest enable=YES  (启用来宾账户)

guest_username=vftp (制定来宾账户名称)

allow_writeable_chroot=YES  (允许写入权限)

systemctl restart vsftpd

ftp192.168.152.131

进入根目录cd /var/ftproot/

随便创建点东西试试touch a b c d

pwd

ls

4.虚拟用户独立配置文件:

vsftpd.conf

user_config.dir=/etc/vsftpd/vuserdir

mkdir /etc/vsftpd/vuserdir

cd /etc/vsftpd/vuserdir

vim hello (与用户名同名)

 anon_upload_enable=YES

 anon_mkdir_write_enable=YES

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

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

相关文章

【北京理工大学-Python 数据分析-2.1Matplotlib库入门】

Matplotlib库的使用 Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。matplotlib.pyplot是绘制各类可视化图形的命令字库,相当于快捷方式。 import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) plt.ylabel("Grade&qu…

实战四十七:基于机器(逻辑回归随机森林线性回归)学习预测销售门店的商品销量详细教程(代码+数据)

项目概述: 使用时间序列预测来预测来Corporacin Favorita 的数据的商店销售额。 具体来说,构建一个模型来更准确地预测在不同 Favorita 商店销售的数千种商品的单位销售额。您将使用包含日期、商店和商品信息、促销和单位销售的易于理解的训练数据集来练习您的机器学习技能。…

基于java ssm springboot+VUE疫情防疫系统系统前后端分离设计和实现

基于java ssm springbootVUE疫情防疫系统系统前后端分离设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留…

Goland中使用GoPlantUml生成ER关系图

前言 Golang语言在近些年的开发语言中异军突起,在越来越多的公司项目中频繁出镜,也有越来越多的中间件选择使用Golang语言进行实现。正所谓源码之下无秘密,更友好地翻读源码对于理解功能特性以及后续使用非常有帮助,观摩学习源码也…

RMAN异地恢复-适用于数据库量比较大的场景

之前验证异地备份,只对数据库做个全备就备份恢复了,这种适用于数据库比较小的场景,因为如果数据库量大的话,备份,拷贝备份,恢复数据库的时间就比较长,停业务的时间就会比较长。 如果数据库比较…

JavaWeb知识汇总

文章目录前导一、数据库1.相关概念2.数据模型3.SQL4.约束5.数据库设计6.多表查询7.事务二、JDBC1.步骤2.JDBC事务管理3.数据库连接池三、Maven1.maven生命周期2.maven坐标详解3.依赖管理四、Mybatis1.快速入门2.Mapper代理开发3.核心配置文件4.参数传递5.注解开发五、HTML1.快速…

【进阶C语言】字符串函数+内存函数

文章目录一.字符串函数1.strlen功能:求字符串长度(不包括\0)函数模拟实现:2.1 strcmp功能函数模拟实现2.2 strncmp3.1 strcat功能函数模拟实现3.2strncat4.1 strcpy功能函数模拟实现4.2 strncpy5.strstr功能函数模拟实现6.strtok功…

论文《An Effective Consistency Constraint for Sequential Recommendation》

C2Rec: An Effective Consistency Constraint for SequentialRecommendation 这篇文章提出了序列推荐建模中一种有效的一致性约束防范,不用修改模型结构,仅仅添加2个额外的损失函数,就能达到非常好的效果。不像基于对比学习的方法&#xff0…

C++初阶--string

目录 string对象的创建: 遍历修改 const修饰的迭代器(只读): 反向迭代器: reserve与resize: find,rfind,substr: insert: erase: getchar、getline: string对…

Java基础学习笔记(十一)—— 包装类与泛型

包装类与泛型1 包装类1.1 基本类型包装类1.2 Integer类1.3 自动装箱 / 拆箱2 泛型2.1 泛型概述2.2 泛型的用法2.3 类型通配符1 包装类 1.1 基本类型包装类 基本类型包装类的作用 将基本数据类型封装成对象 的好处在于可以在对象中定义更多的功能方法操作该数据 public stat…

✿✿✿JavaScript --- Ajax异步请求与JSONP 跨域请求

目 录 一、原生的Ajax请求 1.异步和同步 2.Ajax介绍 3.实现方式 (1)原生的JS实现方式(了解) (2)原生AJax发送Post请求,并携带请求参数 二、JQuery封装后的Ajax 1.JQeury实现方式 2. $.get():发送get请求 3.$.post()&…

存储随笔2022年度最受欢迎文章榜单TOP15

回首2022感谢各位粉丝朋友的一路支持与陪伴存储随笔为您献上2022年度最受欢迎文章榜单TOP152023,一起向未来!TOP1:固态硬盘SSD入门级白皮书主要从固态硬盘的原理/接口形态/寿命/使用场景/等不同角度,来对比不同的人群需要什么样的…

[linux]vim编辑器

📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要讲解vim的使用和一些vim的常用操作,以及如何解决…

Flow 转 LiveData 后数据丢了,肿么回事?

翻译自: https://arkadiuszchmura.com/posts/be-careful-when-converting-flow-to-livedata/ 前言 最近我在负责一段代码库,需要在使用 Flow 的 Data 层和仍然依赖 LiveData 暴露 State 数据的 UI 层之间实现桥接。好在 androidx.lifecycle 框架已经提供…

C语言-指针进阶-函数指针数组应用-计算器(9.2)

目录 1. 函数指针 2. 函数指针数组 2.1函数指针数组的定义 2.2函数指针数组应用 3. 指向函数指针数组的指针 思维导图&#xff1a; 1. 函数指针 直接上代码&#xff1a; #include <stdio.h>void test() {printf("hehe\n"); }int main() {printf("%…

【Java】数组的复制、反转、查找、排序

数组的复制、反转、查找、排序 复制 其中最关键的一点是搞清楚为什么数组复制和基本数据类型复制不同&#xff0c;是什么导致了这样的不同&#xff1f; 先来看例子 package com.atguigu.java;public class ArrayTest3 {public static void main(String[] args) {//新建arr数…

【Java数据结构与算法】Day2-高级排序(希尔、归并、快速、计数)

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;【Java数据结构与算法】 &#…

实验七:555定时器及其应用

答疑解惑用555定时器组成的单稳态电路中&#xff0c;若触发脉冲宽度大于单稳态持续时间&#xff0c;电路能否正常工作&#xff1f;如果不能&#xff0c;则电路应做如何修改&#xff1f;答:若触发脉冲宽度大于单稳态持续时间后&#xff0c;输出脉冲宽度将等于触发脉冲的低电平持…

【精】EditorConfig 小老鼠 跨编辑器 | IDE 保持一致的编码风格

【精】EditorConfig 小老鼠 跨编辑器 | IDE 保持一致的编码风格 &#x1f345;因发布平台差异导致阅读体验不同&#xff0c;将本文原编写地址贴出&#x1f339;&#xff1a;《【精】EditorConfig 小老鼠 跨编辑器 | IDE 保持一致的编码风格》 文章目录【精】EditorConfig 小老鼠…

实时数仓方案

2、实时数仓方案 2.1、为何需要实时数仓架构 随着数据量的增大&#xff0c;传统数据的方案在时效性上和数据维护上变得越来越困难。实时数仓架构应运而生。 具体方案落地上实时数仓有很多方案可以选择&#xff0c;不同的业务和应用场景到底应该选择哪种技术方案&#xff1f;…