作用:windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun提供的
linux 下的网络文件管理是cifs
window创建共享文件(读写),以及自身作为客户端,怎么访问到共享文件夹,打开过程如下。
linux作为客户端,怎么进行访问window下的共享文件夹!
- 服务启动脚本: smb.server
- 主配置目录:/etc/samba.conf
- 安全上下文:samba_share_t
- 端口:139 445
- 服务端安装包:samba、samba-common
- 客户端安装包:samba-client
- 服务端
- dnf install samba-common.noarch samba.x86_64 -y
- vim /etc/samba/smb.conf ##主配置目录
- cp /etc/samba/smb.conf.example /etc/samba/smb.conf ##复制配置文件
- systemctl enable --now smb.service ##启动服务
- netstat -antlupe | grep smbd ##查看端口号
- smbpasswd -a westos ##添加用户(用户必须是本机存在的用户)
- pdbedit -L ##显示添加的用户
- pdbedit -x westos ##删除用户westos
- 客户端(dnf install samba-client.x86_64 -y)
- smbclient -L //192.168.1.110 -U westos ##显示共享文件夹,默认是自己的家目录
- smbclient //192.168.1.110/westos -U westos ##进入家目录这个共享文件夹(发现什麼都不显示)
- getsebool -a | grep samba ##因为selinux是开着的,看一下sebool的设定
- setsebool -P samba_enable_home_dirs on ##打开家目录作为共享文件夹的sebool值
- smbclient //192.168.1.110/westos -U westos ##发现家目录可以进去了
- vim /etc/samba/smb.conf ##编辑配置文件,内容如下
- [westos_share] ##共享文件夹的名字
- comment = westos_dir ##解释文件,随便写
- path = /westosdir ##路径必须写对,共享文件夹的路径
- 设置完成之后,可以再次访问。
- smbclient //192.168.1.110/westos_share -U westos ##发现访问不成功,需要设置安全上下文
- semanage fcontext -a -t samba_share_t "/westosdir(/.*)?" ##设置安全上下文
- restorecon -RvvF /westosdir ##刷新安全上下文
- smbclient //192.168.1.110/westos_share -U westos 访问成功
- vim /etc/samba/smb.conf ##编辑配置文件
- [westos_share]
- comment = westos_dir
- path = /mnt ##系统级目录
- smbclient //192.168.1.110/westos_share -U westos ##现在进去访问不到/mnt下的文件
- getsebool -a | grep samba ##查看sebool权限
- setsebool -P asmba_export_all_ro on ##允许导入文件并可读
- smbclient //192.168.1.110/westos_share -U westos ##现在进去可以访问到/mnt下的文件
- writable = yes ##可写
- write list = westos ##指定用户可写
- write list = +westos ##指定组可写(组内的用户都可以写)
- write list = @westos ##指定组可写(组内的用户都可以写)
- valid users = lee ##指定访问用户
- valid users = +lee或@lee##指定访问组
- browseable = yes|no ##是否隐藏共享
- map to guest = bad user ##写到配置文件的全局设定下
- guest ok = yes ##允许匿名用户访问(匿名用户登录这句和上一句命令必须都得有)
- admin users = lee ##指定此共享的超级用户身份
- hosts allow = 192.168.1.110 ##允许哪个主机访问
- hosts allow = 172. 192.168.1. ##允许哪个网段访问
- hosts deny = ###不允许哪个访问
- 共享文件夹的挂载命令
- mount -o username=westos,password=westos //192.168.1.110/westos_share /media/
writable = yes ##可写
write list = westos ##指定用户可写
write list = +westos ##指定组可写(组内的用户都可以写)
valid users = westos ##指定访问用户
valid users = +lee或@lee##指定访问组
map to guest = bad user ##写到配置文件的全局设定下
guest ok = yes ##允许匿名用户访问(匿名用户登录这句和上一句命令必须都得有)
hosts allow = 192.168.1.110 ##允许这个ip登陆
hosts deny = 192.168.1.110 ##不允许这个ip登陆
- 客户端(真机)
- dnf install cifs-utils -y ##安装支持的软件
- vim /root/smbpass ##编辑认证文件
- username=westos
- password=westos ##服务端添加的用户
- mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //192.168.1.110/westos_share /mnt ##挂载测试
- ##credentials=/root/smbpass ##指定认证文件
- ##sec=ntlmssp ##指定认证类型
- ##multiuser ##支持多用户
- 客户端测试
- su - westos
- ls /mnt
- ls:cannot access '/mnt':Permission denied ##客户端主机的westos用户没有通过认证
- 解决方法:
- cifscreds clearall ##清空缓存信息
- cifscreds add -u westos 192.168.1.110 ##使用westos用户访问共享目录
- ls /mnt ##发现可以显示内容
真机测试
- 客户端
- dnf install autofs -y ##安装自动挂载自动卸载软件
- systemctl enable --now autofs ##开启服务
- vim /etc/auto.master ##编辑配置文件并写入以下内容
- /mnt /etc/auto.cifs ##文件含义如下
- 最终挂载点的上层目录 自动挂载的策略文件,名字随意(本身不存在,需要自己编辑)
- vim /etc/auto.cifs ##编辑自动策略文件,策略文件内容如下
- smb -fstype=cifs,username=westos,password=westos ://192.168.1.110/westos_share
- 最终挂载目录 类型,用户名密码(可以用cifs软件认证) 共享文件(挂载资源)
- vim /etc/autofs.conf ##编辑资源的配置,如自动解除挂载的时间Timeout=300 是默认的,可以修改。企业一般300或者900
- systemctl restart autofs ##重启服务
- 测试
- cd /mnt/smb ##需要手动进入挂载目录,tab没用
- df ##查看是否挂载成功
- nfs-utils ##安装包
- nfs-server ##服务脚本
- /etc/exports ##共享配置文件
- 服务端
- dnf install nfs-utils -y ##安装软件
- systemctl start nfs-server ##开启服务
- 火墙的操作
- firewall-md --permanent --get-services ##查看所有服务
- firewall-cmd --permanent --add-service=nfs
- firewall-cmd --permanent --add-service=mountd
- firewall-cmd --permanent --add-service=rpc-bind
- firewall-cmd --reload
- vim /etc/exports ##编辑nfs的配置文件,写入如下内容
- /westosdir 192.168.1.0/24(ro,sync)
- 共享目录 共享给谁(共享参数) [上面的是共享给192.168.1网段]
- exportfs -rv ##相当于刷新文件,让文件生效
-
-
- 客户端
- showmount -e 192.168.1.110 ##显示挂载信息
- /westosdir 192.168.1.0/24 ##出现下面信息,说明nfs成功
- mount 192.168.1.110 :/westosdir /mnt ##挂载测试
- df ##查看是否挂载成功
服务端
- 客户端(nfs配置好的情况下)
- vim /etc/auto.master ##编辑配置文件,写入如下内容
- /mnt /etc/auto.nfs ##和autofs的操作是一样的(之前文件中的/etc/auto.cifs要注释,一次只能有一个文件存在)
- vim /etc/auto.nfs
- nfs 192.168.1.110:/westosdir ##可以写参数也可以不写
- systemctl restart autofs.service ##重启服务
- anonuid=1000,anongid=1000 ##指定用户身份
- sync ##更改生成后,同步数据到服务器
- async ##实时同步数据到服务器
- rw ##读写
- ro ##只读
- no_root_squash ##root用户挂载不转换身份
- 1. fdisk /dev/vdb -------> /dev/vdb1 ##添加一块硬盘进行实验
- 2. 服务端
- dnf install targetcli -y ##安装targetcli服务
- targetcli ##执行targetcli命令,开始配置共享硬盘
- /> /backstores/block create westos_storage1 /dev/vdb1 ##创建硬盘的名字
- /> /iscsi create iqn.2020-11.org.westos:strage1 ##创建共享盘的名字
- /> /iscsi/iqn.2020-11.org.westos:strage1/tpg1/luns create /backstores/block/westos_storage1 ##打开共享功能
- /> /iscsi/iqn.2020-11.org.westos:strage1/tpg1/acls create iqn.2020-11.org.westos:westoskey1 ##创建密钥
- /> exit
- 写错删除的用法
- />/iscsi delete iqn.2020-11.org.westos:strage1 ##删除成功
- />clearconfig confirm=true | false ##清楚残留信息
- firewall-cmd --permanent --add-port=3260/tcp ##添加3260端口
- firewall-cmd --reload
- 客户端
- dnf install iscsi-initiator-utils.x86_64 -y
- vim /etc/iscsi/initiatorname.iscsi
- InitiatorName=iqn.2020-11.org.westos:westoskey1 <---- key check
- systemctl restart iscsid.service ##重启服务
- iscsiadm -m discory -t st -p 192.168.1.110 ##查看是否访问到,如果没有需要在服务端配置火墙
- iscsiadm -m node -T iqn.2020-11.org.westos:strage1 -p 192.168.1.110 -l ---> 登陆成功并出现一个共享盘/dev/sdb
-
-挂载共享硬盘
- fdisk /dev/sdb 分出一个盘 /dev/sdb1
- mkfs.xfs /dev/sdb1
- mount /dev/sdb1 /mnt
- 不显示共享盘,相当于拔出共享盘
- iscsiadm -m node -T iqn.2020-11.org.westos:strage1 -p 192.168.1.110 -u
- cat /proc/partitions ##发现sdb和sdb1消失
- systemctl restart iscsi ##重启这个服务,相当于刷新,将共享磁盘显示出来
- 永久挂载共享磁盘
- vim /etc/fstab
- /dev/sdb1 /mnt xfs defaults,_netdev 0 0
- 永久删除共享磁盘(客户端删除)(先拔出共享盘)
- iscsiadm -m node -T iqn.2020-11.org.westos:strage1 -p 192.168.1.110 -o delete 删除/var/lib/iscsi 下的文件
- tree /var/lib/iscsi ## 查看文件是否还存在
-
服务端
iqn.2020-11.org.westos:strage1