SAMBA

环境:Redhat7.4

服务名称:Samba

概述:
Server Message Block (SMB) 是 Windows 服务器和客户端之间实现文件共享的服务协议。Samba 服务通常用来做跨系统文件共享服务,实现不同操作系统之间的资源共享。

NFS与samba一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持windows平台,而本章要提到的samba是能够在任何支持SMB协议的主机之间共享文件的一种实现,当然也包括windows。

使用场景:

SMB协议是C/S型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
Samba监听端口有:

TCPUDP
139137
445138

tcp端口相对应的服务是smbd服务,其作用是提供对服务器中文件、打印资源的共享访问。
udp端口相对应的服务是nmbd服务,其作用是提供基于NetBIOS主机名称的解析。

配置文件:

/etc/samba/smb.conf(主配置文件)
samba三大组成作用
[global]全局配置,此处的设置项对整个samba服务器都有效
[homes]宿主目录共享设置,此处用来设置Linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中
[printers]打印机共享设置

常用配置文件参数:

参数作用
workgroup表示设置工作组名称
server string表示描述samba服务器
security表示设置安全级别,其值可为share、user、server、domain
passdb backend表示设置共享帐户文件的类型,其值可为tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本samba密码文件)
comment表示设置对应共享目录的注释,说明信息,即文件共享名
browseable表示设置共享是否可见
writable表示设置目录是否可写
path表示共享目录的路径
guest ok表示设置是否所有人均可访问共享目录
public表示设置是否允许匿名用户访问
write list表示设置允许写的用户和组,组要用@表示,例如 write list = root,@root
valid users设置可以访问的用户和组,例如 valid users = root,@root
hosts deny设置拒绝哪台主机访问,例如 hosts deny = 192.168.230.15
hosts allow设置允许哪台主机访问,例如 hosts allow = 192.168.230.15
printable表示设置是否为打印机

安装配置:

配置匿名访问
服务端

//配置selinux
[root@master ~]# getsebool -a |grep samba
[root@master ~]# setsebool -P samba_enable_home_dirs on
//配置防火墙
[root@master ~]# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.230.0/24 service name=samba accept"
[root@master ~]# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.230.0/24 service name=samba-client accept"
[root@master ~]# firewall-cmd --reload 
//下载服务
[root@master ~]# yum install samba -y
//编辑配置文件
[root@master ~]# vim /etc/samba/smb.conf
[global]
	   map to guest = Bad User
[shuai]
       comment = this is shuai
       path = /share/
       browseable = yes
       public = yes
       writable = yes
       guest ok = yes
创建共享目录:
[root@master ~]# mkdir /share
[root@master ~]# chmod 777 /share/
//加入开机自启动并重启服务
[root@master ~]# systemctl enable smb nmb
[root@master ~]# systemctl restart smb nmb

客户端

//查看共享了哪些目录
[root@slave ~]# smbclient -L 192.168.230.15 -U 'Bad User'
Enter SAMBA\Bad User's password: 
	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	shuai           Disk      this is shuai
//创建挂载目录
[root@slave ~]# mkdir /smb
[root@slave ~]# mount -t cifs //192.168.230.15/shuai /smb -o username='Bad User'
[root@slave ~]# df -h
//192.168.230.15/shuai   17G  2.6G   15G  16% /smb
[root@slave ~]# cd /smb/
[root@slave smb]# touch haha
[root@slave smb]# ls
haha
服务端验证:
[root@master ~]# cd /share/
[root@master share]# ls
haha

配置用户认证访问
服务端

[root@master ~]# useradd cat
//为cat用户创建smb共享密码
[root@master ~]# smbpasswd -a cat
New SMB password:
Retype new SMB password:
Added user cat.
//编辑配置文件
[root@master ~]# vim /etc/samba/smb.conf
[global]
	username map = /etc/samba/smbusers
[cat]
	comment = this is cat
	path = /cat
	browseable = yes
	guest ok = yes
	writable = yes
	write list = ceshi
	public = yes
//假设这里映射cat用户为ceshi用户,那么就要在/etc/samba/smbusers(这个文件自己创建,取名随意)文件中添加如下内容:
[root@master ~]# echo 'cat = ceshi' > /etc/samba/smbusers
//创建共享目录
[root@master ~]# mkdir /cat
[root@master ~]# chown -R cat.cat /cat/
//加入开机自启动并重启服务
[root@master ~]# systemctl enable smb nmb
[root@master ~]# systemctl restart smb nmb

客户端

//查看共享了哪些目录
[root@slave ~]# smbclient -L 192.168.230.15 -U ceshi
Enter SAMBA\ceshi's password:   (这里密码输入前面设置的cat密码)
	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	cat             Disk      this is cat
//创建挂载目录
[root@slave ~]# mkdir /smb2
[root@slave ~]# mount -t cifs //192.168.230.15/cat /smb2/ -o username=ceshi,password=1
[root@slave ~]# df -h
//192.168.230.15/cat    17G  2.6G   15G  16% /smb2
[root@slave ~]# cd /smb2/
[root@slave smb2]# touch lala
[root@slave smb2]# ls
lala
服务端验证:
[root@master ~]# cd /cat/
[root@master cat]# ls
lala

Windows验证
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

RHCE题库中的Samba

题目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置:

第十三题
服务端:
[root@server30 ~]# yum install samba* -y
[root@server30 ~]# vim /etc/samba/smb.conf 
        workgroup = STAFF
[common]
        path = /common
        browseable = yes
[root@server30 ~]# mkdir /common
[root@server30 ~]# systemctl mask iptables.service ebtables.service 
[root@server30 ~]# firewall-cmd --permanent --add-rich-rule "rule family=ipv4 source address=172.16.30.0/24 service name=samba accept"
success
[root@server30 ~]# firewall-cmd --permanent --add-rich-rule "rule family=ipv4 source address=172.16.30.0/24 service name=samba-client accept"
success
[root@server30 ~]# firewall-cmd --reload 
success
[root@server30 ~]# useradd natasha
[root@server30 ~]# smbpasswd -a natasha
New SMB password:  (tangkai)
Retype new SMB password:
Added user natasha.
[root@server30 ~]# setfacl -m u:natasha:r-x /common/
[root@server30 ~]# setsebool -P samba_enable_home_dirs on
[root@server30 ~]# vim /etc/samba/smb.conf 
[root@server30 ~]# chcon -Rt samba_share_t /common/
[root@server30 ~]# systemctl enable smb nmb 
[root@server30 ~]# systemctl restart smb nmb
客户端:
[root@desktop30 ~]# smbclient -L 172.16.30.130 -U natasha
[root@desktop30 ~]# mount -t cifs -o username=natasha,password=tangkai //172.16.30.130/common /mnt/
[root@desktop30 ~]# df -h
//172.16.30.130/common  4.9G  3.1G  1.9G  62% /mnt
[root@desktop30 mnt]# touch aaaa
touch: cannot touch ‘aaaa’: Permission denied
(因为natasha配置的是只读权限,所以不能写,不过后面的多用户挂载就可以解决这个问题了)

第十四题,多用户挂载:
服务端
[root@server30 ~]# mkdir /storage
[root@server30 ~]# chcon -Rt samba_share_t /storage/
[root@server30 ~]# vim /etc/samba/smb.conf 
[share]
        path = /storage
        browseable = yes
[root@server30 ~]# useradd sarah
[root@server30 ~]# useradd kitty
[root@server30 ~]# smbpasswd -a sarah
New SMB password:
Retype new SMB password:
Added user sarah.
[root@server30 ~]# smbpasswd -a kitty
New SMB password:
Retype new SMB password:
Added user kitty.
[root@server30 ~]# setfacl -m u:sarah:r-x /storage/
[root@server30 ~]# setfacl -m u:kitty:rwx /storage/
[root@server30 ~]# vim /etc/samba/smb.conf 
[common]
        path = /common
        browseable = yes
        valid users = natasha
[share]    (这个就是上面的share,现在多加了几行)
        path = /storage
        browseable = yes
        valid users = sarah,kitty
        writable = no
        write list = kitty
[root@server30 ~]# systemctl restart smb nmb
客户端:
[root@desktop30 ~]# umount /mnt/
[root@desktop30 ~]# mkdir /mnt/dev
[root@desktop30 ~]# vim /etc/fstab 
//172.16.30.130/share /mnt/dev cifs multiuser,username=sarah,password=tangkai,sec=ntlmssp 0 0
[root@desktop30 ~]# mount -a
[root@desktop30 ~]# df -h
//172.16.30.130/share  4.9G  3.1G  1.9G  62% /mnt/dev
[root@desktop30 ~]# cd /mnt/dev/
[root@desktop30 dev]# touch haha
touch: cannot touch ‘haha’: Permission denied
(sarah是只读,所以不能创建)
[root@desktop30 ~]# yum install cifs-utils -y
[root@desktop30 ~]# ls /home/  (这里只能用普通用户去验证,切换到student)
student
[root@desktop30 ~]# su - student 
[student@desktop30 ~]$ 
[student@desktop30 ~]$ cifscreds add -u kitty 172.16.30.130
Password:   (tangkai)
[student@desktop30 ~]$ df -h
//172.16.30.130/share  4.9G  3.1G  1.9G  62% /mnt/dev
[student@desktop30 ~]$ cd /mnt/dev/
[student@desktop30 dev]$ touch haha
[student@desktop30 dev]$ ls  (现在就可以创建了,因为切换到了Kitty用户,而他有写权限)
haha
[student@desktop30 dev]$ ll
total 0
-rw-r--r--. 1 1003 1003 0 Jan  7 00:05 haha
去服务端验证这个id
[root@server30 ~]# id 1003
uid=1003(kitty) gid=1003(kitty) groups=1003(kitty)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值