Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
1.samba的作用
samba是一款软件,主要提供cifs协议(基于文件系统传输)
2.samba的安装与启用
环境:服务端:172.25.8.11 客户端:172.25.8.10
(1)在服务端
yum install samba samba-client.x86_64 samba-common -y
systemctl start smb
systemctl stop firewalld.service
samba的基本信息
主配置文件: vim /etc/samba/smb.conf
端口:139/tcp 139/udp 445/tcp 445/udp
systemctl restart smb.service
vim /etc/samba/smb.conf
89 workgroup = westos ##工作组的设定
90 server string = hello world ##全局共享信息
91 hosts deny = 172.25.8.10 ##用户黑名单
92 hosts allow = 172.25.8.11 ##用户白名单
systemctl restart smb.service
测试 :客户端 172.25.8.10
yum install smaba-client -y
smbclient -L //172.25.8.11 ##没有密码直接回车 匿名登陆
在服务端 172.25.8.11
samba用户必须是本地用户
useradd westos
useradd lee
smbpasswd -a westos
smbpasswd -a lee
pdbedit -L ##列出samba用户
pdbedit -x lee ##删除samba用户
setsebool -P samba_enable_home_dirs on ###给家目录权限,/etc/samba/smb.conf的30行
测试 虚拟机ip 172.25.8.10
smbclient -L //172.25.8.10 -U westos ##输入密码
在smb下命令与linux不同,为了方便操作我们通常将其挂载后使用
mount //172.25.8.10/westos /mnt -o username=westos,password=westos
客户端永久挂载
vim /etc/fstab
//172.25.8.11/westos /mnt cifs defaults,username=westos,password=westos 0 0
自定义共享目录
mkdir /westos
semanage fcontext -a -t samba_share_t '/westos(/.*)?' ##开放当前目录的selinux安全上下文
安全上下文查看 ls -dZ 目录
restorecon -FvvR /westos/
vim /etc/samba/smb.conf
[DATA]
comment = westos ##描述
path = /westos ##共享目录
systemctl restart smb
touch /westos/aa
当目录是系统目录时
IP 172.25.8.11 服务端
vim /etc/samba/smb.conf
[system]
comment = file
path = /mnt
setsebool -P samba_export_all_ro on
systemctl restart smb.service
测试 客户端 172.25.8.10
smbclient -L //172.25.8.11 -U westos
匿名用户登陆
vim /etc/samba/smb.conf
124 map to guest = bad user
321 [westos]
322 comment = westos
323 path = /westos
324 guest ok = yes ###匿名用户可以登陆
systemctl restart smb
测试 IP:172.25.8.250
mount //172.25.254.125/westos /mnt/ -o username=guest ##直接回车
df
chmod 777 /westos
setsebool -P samba_export_all_rw on
vim /etc/samba/smb.conf
writable = yes | no ###是否开启写权限(开启所有用户都可以写)
把上面的writable = yes | no注释掉,在测试下面的情况
write list = westos ###给dream写的权限
write list = +westos ###给dream组写的权限
admin users = westos ###设定当前共享的root为dream
valid users = @westos ###设定当前共享的有效用户组
browseable = yes | no ###当前共享是否隐藏
测试: IP 172.25.8.10 客户端
mount //172.25.8.11/westos /mnt/ -o username=westos,password=westos
在客户端 172.25.8.10
yum install cifs-utils.x86_64 -y
vim /root/sambapasswd
username=westos
password=westos
chmod 600 /root/sambapasswd
mount -o credentials=/root/sambapasswd,sec=ntlmssp,multiuser //172.25.8.11/westos /mnt/