目录
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文件共享服务
-
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(用户名)
- 查看所有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
- share 可被所有人访问,只用admin能上传
- 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
- 可能会出些问题 ifconfig
有这个的话执行停掉: systemctl stop libvirtd.service
从开机启动项中去掉:systemctl disable libvirtd.service
重启系统:reboot
- 重启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
-
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/
- grep -v “^#” vsftpd.conf | grep -v “^$”
- 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
-
操作流程:
修改配置文件-------启动服务--------------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