SAMBA服务简介
SMB:Server Message Block服务器消息块,IBM发布,最早是DOS网络文件共享协议
CIFS:common internet file system,微软基于SMB发布
SAMBA:1991年Andrew Tridgell,实现windows和UNIX相通SAMBA的功能:
•共享文件和打印,实现在线编辑
•实现登录SAMBA用户的身份认证
•可以进行NetBIOS名称解析
•外围设备共享
计算机网络管理模式:
•工作组WORKGROUP:计算机对等关系,帐号信息各自管理
•域DOMAIN:C/S结构,帐号信息集中管理,DC,AD
SAMBA介绍
yum安装
1 | yum -y install samba |
相关包:
Samba提供smb服务Samba-client客户端软件samba-common通用软件cifs-utilssmb客户端工具samba-winbind和AD相关
相关服务进程:
smbd提供smb(cifs)服务 TCP:139,445nmbdNetBIOS名称解析 UDP:137,138
主配置文件:/etc/samba/smb.conf
帮助参看:man smb.conf
语法检查: testparm [-v] [/etc/samba/smb.conf]
客户端工具:smbclient,mount.cifs
SAMBA服务器配置
smb.conf继承了.ini文件的格式,用[ ] 分成不同的部分
全局设置:
[global] 服务器通用或全局设置的部分特定共享设置:
[homes] 用户的家目录共享
[printers] 定义打印机资源和服务
[sharename] 自定义的共享目录配置
其中:#和;开头的语句为注释,大小写不敏感
| 宏定义 | 说明 |
|---|---|
| %m | 客户端主机的NetBIOS名 %M 客户端主机的FQDN |
| %H | 当前用户家目录路径 %U 当前用户用户名 |
| %g | 当前用户所属组 %h samba服务器的主机名 |
| %L | samba服务器的NetBIOS名 %I 客户端主机的IP |
| %T | 当前日期和时间 %S 可登录的用户名 |
SAMBA服务器全局配置
1 | [101]$ cat /etc/samba/smb.conf |
管理SAMBA用户
把linux帐号加到samba的帐号中
1
2
3
4
5#-a是添加,不加就是修改密码
[101]$ smbpasswd -a wang
New SMB password:
Retype new SMB password:
Added user wang.也可以这样
1
pdbedit -a -u <user>
修改用户密码
1
smbpasswd <user>
删除用户和密码:
1
smbpasswd –x <user>
也可以这样删除
1
pdbedit –x –u <user>
查看samba用户列表:
1
2/var/lib/samba/private/passdb.tdb
#这是一个数据库文件,cat是看不了的查看详细信息
1
pdbedit –L –v
查看samba服务器状态
1
smbstatus
配置目录共享
每个共享目录应该有独立的[ ]部分
1 | #远程网络看到的共享名称 |
基于特定用户和组的共享
1 | [101]$ vim /etc/samba/smb.conf |
#SMB客户端访问
UNC路径格式:\\sambaserver\sharename
终端下使用smbclient登录服务器smbclient -L 192.168.99.101 -U wang
cd directory
get file1
put file2
smbclient //192.168.99.101/shared -U wang
可以使用-U选项来指定用户%密码,或通过设置和导出USER和PASSWD环境变量来指定
挂载CIFS文件系统
首先需要一个cifs工具
1
yum -y install cifs-utils
手动挂载
1
mount -o user=wang,password=magedu //192.168.99.101/shared /mnt/smb
开机自动挂载
1
2
3
4
5
6
7
8
9
10[101]$ cat /etc/fstab #可以用文件代替用户名和密码的输入
//192.168.99.101/share1 /mnt/share1 cifs sec=ntlmssp,credentials=/etc/smb.txt 0 0
#或这么写
//192.168.99.101/share1 /mnt/share1 cifs sec=ntlmssp,username=smbuser1,passowrd=123 0 0
[101]$ cat /etc/smb.txt
username=wang
password=password
[101]$ chmod 600 /etc/smb.txt
实验:实现SMB共享
一、在samba服务器上安装samba包
1 | yum -y install samba |
二、创建samba用户和组
1 | groupadd -r admins |
三、创建samba共享目录,并设置SElinux
关了SELinux的话就跳过吧
1 | mkdir /testdir/smbshare |
三、samba服务器配置
1 | vim /etc/samba/smb.conf |
samba客户端访问
安装包
1
yum -y install cifs-utils
用wang用户挂载smb共享并访问
1
2
3mkdir /mnt/wang
mount -o username=wang //smbserver/share /mnt/wang
echo "Hello wang" >/mnt/wang/wangfile.txt用mage用户挂载smb共享并访问
1
2
3mkdir /mnt/mage
mount -o username=mage //smbserver/share /mnt/mage
touch /mnt/mage/magefile.txt