重点: samba 的部署
互联网中常见协议:
协议 | 含义 | 端口 |
http | 超文本传输协议 | 80 |
https | 安全的超文本传输协议 | 443 |
ftp | 文件传输协议 | 21 |
tftp | 简单的文件传输协议 | 69 |
dns | 域名解析协议 | 53 |
smtp | 发邮件协议 | 25 |
pop3 | 收邮件协议 | 110 |
snmp | 网络管理协议 | 161 |
telnet | 远程管理协议 | 23 |
互联网怎样找到另一台主机:通过IP地址
如何找到主机上相应的程序:端口
端口:标识服务或程序,编号
允许改变端口号,也允许一个服务或程序具备多个端口
数据包的四个要素:源IP地址、目标IP地址、数据、端口
Samba服务基础,配置SMB共享(Windows与Linux跨平台的共享)
用途:为客户机提供共享使用的文件夹
协议:SMB(TCP 139)验证、CIFS(TCP 445)传输数据
所需软件包:samba
系统服务:smb
配置文件:/etc/samba/smb.conf
Samba用户 —— 专用来访问共享文件夹的用户
但需要提前建立同名的系统用户
采用独立设置的密码,即与系统登陆密码不同
pdbedit -a [用户名] #创建samba共享帐号
pdbedit -x [用户名] #删除samba共享帐号
pdbedit -L #查看所有samba共享帐号
修改 /etc/samba/smb.conf
[自定共享名] #共享时候客户端看到的目录名(不要用特殊字符)
path = 文件夹绝对路径 #共享的文件夹的服务端存储目录
; public = no|yes //默认no #是否公开,即访问是否必须输入帐号密码登陆
; browseable = yes|no //默认yes #是否允许访问
; read only = yes|no //默认yes #是否只读
; write list = 用户1 .. .. //默认无 #允许写的用户
; valid users = 用户1 .. .. //默认任何用户 #允许登陆的用户
; hosts allow = 客户机地址 .. .. #允许的客户端IP
; hosts deny = 客户机地址 .. .. #拒绝的客户端IP
搭建基本的samba共享服务
一、虚拟机Server0:
1.安装软件包samba
2.建立samba共享帐号,专用于验证samba共享服务用户名
useradd -s /sbin/nologin [用户名]
pdbedit -a [用户名] #添加为共享帐号
3.修改配置文件,发布目录,设置共享名(详细格式在上方)
mkdir [目录]
echo "[共享名] \npath = [目录]" /etc/samba/smb.conf
**如果要求,此服务器必须是 STAFF 工作组的一个成员,在配置文件的80多行
workgroup = STAFF
4.重起smb服务
systemctl restart smb
systemctl enable smb
5.SELinux的 布尔值(功能的开关 on与off)
需要加 -P 选项才能实现永久设置
getsebool -a | grep samba #查看SELinux布尔值
setsebool samba_export_all_ro on #修改SELinux只读布尔值
setsebool samba_export_all_rw on #修改SELinux读写布尔值
6.设置本机目录的基本的权限(一般是读写的时候要求修改,不然客户端也不能完成写)
setfacl -m u:[用户名]:rwx /devops/
getfacl /devops/
二、客户端:虚拟机Desktop0
使用用命令测试,一般不用
1.所需软件包:samba-client访问服务端共享
2.显示服务端共享内容(不输入root密码)
smbclient -L //172.25.0.11
3.访问共享(输入密码)
smbclient -U harry //172.25.0.11/common
Enter harry's password:
更加科学方便的方式访问samba共享:挂载
1.安装软件包cifs-utils(支持cifs传输协议)
2.进行挂载
mkdir /mnt/nsd01
ls /mnt/nsd01
mount -o user=[用户名],pass=[密码] //172.25.0.11/[IP] [挂载点] # 临时挂载
** _netdev:网络设备(注意有下划线)
在开机启动时,挂载带有_netdev参数的设备,需要首先将网络服务部署完成,配置好所有网络参数,在挂载本设备
echo '//172.25.0.11/[IP] [挂载点] cifs defaults,user=[用户名],pass=[密码],_netdev 0 0' >> /etc/fstab
mount -a #验证是否书写正确
df -h
总结:
客户端访问服务端影响的方面
1.防火墙(firewall-cmd)
2.SELinux(getsebool 和 setsebool)
3.服务本身的策略(配置文件)
4.服务端本地目录的权限(判断共享目录对于设置的samba用户权限是什么,用setfacl设置)
samba的服务端配置:
1.装包samba 2.创建用户并录入samba 3.配置(发布建共享目录) 4.起服务 5.关闭防火墙和selinux 6.设置权限
samba的客户端配置:
1.装包cifs.utils 2.挂载使用
multiuser机制
在客户端实现samba挂载时,采用权限较小用户验证,必要时可以切换成权限较大的用户身份
multiuser,提供对客户端多个用户身份的区分支持
sec=ntlmssp,提供NT局域网管理安全支持
echo '//172.25.0.11/[IP] [挂载点] cifs defaults,user=[用户名],pass=[密码],_netdev,multiuser,sec=ntlmssp 0 0 ' >> /etc/fstab
在挂载samba服务的后面加上两个指令
用下面指令来切换samba身份,从而做到权限的变更
cifscreds add -u chihiro 172.25.0.11
配置NFS共享(Linux与Linux之间的共享)
Network File System,网络文件系统
用途:为客户机提供共享使用的文件夹
协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)
所需软件包:nfs-utils
系统服务:nfs-server
虚拟机server0
1.安装软件nfs-utils
yum -y install nfs-utils
2.发布共享 /abc
echo ' [共享目录] [IP]/[子网掩码]([ro,rw])' >>/etc/exports
3.重起nfs-server服务
systemctl restart nfs-server
systemctl enable nfs-server
客户端虚拟机desktop0
挂载使用
echo '[IP]:[共享目录] [挂载目录] nfs defaults,_netdev 0 0' >> /etc/fstab
mount -a
df -h
配置IPv6地址
IPv4地址:32个二进制组成,以 点 分隔 4 部分,最终用4个十进制表示
IPv6地址:128个二进制组成,以 冒号 分隔 8 部分,每部分由 4个16进制数表示
每段内连续的前置 0 可省略、连续的多个 : 可简化为 ::
例如: 2003:ac18:0000:0000:0000:0000:0000:0305
2003:ac18::305/64
nmcli connection modify 'System eth0' ipv6.method manual ipv6.addresses [IP]/64 connection.autoconnect yes
nmcli connection up 'System eth0'
环境变量:
$PATH :为执行命令时,提供搜寻路径(在搜寻命令程序文件位置)
$USER :当前用户名