smb的介绍
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,提供cifs协议,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
CIFS (Common Internet File System)是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文本传输协议和超文本传输协议的一个实现
1,Samba服务
samba-common samba的支持文件
samba 服务器应用程序
samba-client 客户端应用程序
yum install samba-conmmon samba samba-client -y 安装
启动这个服务和设置开机自启
永久允许samba
永久允许samba-client
火墙重新加载
创建smb服务上的用户首先本机拥有这个用户 然后给用户设置在smb服务上的密码
创建文件以便后面观察
开启这个
smbclient //172.25.254.130 -U 匿名用户登陆默认家目录
查看westos用户共享信息
可以看到westos用户的共享名称,类型以及说明(默认共享为家目录)
进入家目录可以看到我们之前创建的文件
2,用户的管理
pdbedit -L 查看以添加的用户
pdbedit -x student 删除添加过的用户
vim /etc/samba/smb.conf 主配置文件
89行 workgroup = WESTOS 更改域名
96行 hosts allow = 172.15.254.160 只允许160登陆
hosts deny = 172.25.254.160 只有160不可以登陆
重启服务
3.共享目录设定(服务端)
(1)当共享的目录是用户自己建立时
vim /etc/samba/smb.conf
semanage fcontext -a -t samba_share_t ‘/westos(/.*)?’ ##永久更改安全上下文
restorecon -RvvF /westos/ 重新加载
smbclient -L //172.25.254.120 -U westos
smbclient //172.25.254.120/linux -U westos
一开始不能访问用户自己建立的目录,因为不符合samba服务的安全上下文,修改安全上下文之后成功访问
(2)当共享的目录是系统目录时
vim /etc/samba/smb.conf
测试:
smbclient //172.25.254.199/hallo -U westos
可以看到没有访问到系统目录,内容不符
samba可读的端口打开
成功访问
4,权限控制
没给权限前,不可写
vim /etc/samba/smb.conf
writable = yes 开启写权力
只对root可写,所以给权限777
mount //172.25.254.199/linux /mnt -o username=westos,password=zss linux挂载到/mnt
write list = westos
只有westos用户可以读写。
write list = +westos或@westos
表示只有在westos用户组里的用户才可读写。
usermod -G student westos 把student添加为westos的从属组,student可以有了写的权力
browseable = no
此目录被隐藏,但依然可以读写
valid users = westos
只有westos用户可以挂载,登陆。
valid users = +westos或@westos
只有在westos组的用户才可以挂载,登陆
admin users = student
表示student为此目录的超级用户,拥有root权限
125行加 map to guest = bad user
表示所有匿名用户为guest。
guest ok =yes
匿名用户可以登陆
5.samba多用户挂载
(1)客户端
yum install cifs-utils -y
vim /root/smbpass 里面写用户名和密码
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.199/linux /mnt/
测试:
su - student
cd /mnt
查看不到内容
在student下
cifscreds add -u student 172.25.254.199 以服务端本地用户身份去查看