Linux——搭建Samba(CIFS)服务器
<h1 id="一samba的基本概念">一、Samba的基本概念</h1><p>Samba服务:是提供<strong>基于Linux和Windows的共享文件服务</strong>,服务端和客户端都可以是Linux或Windows操作系统。并且可以<strong>基于特定的用户访问</strong>,功能比NFS更强大。(cifs格式:Samba默认的文件系统类型)</p>
<p>Samba与ftp和nfs的区别:</p>
<ul>
<li>ftp服务:也是基于Linux和Windows共享文件的服务,但是不安全,因为ftp可以匿名访问,匿名用户可以获取读写权限,所以不常用</li>
<li>nfs服务:只能做Linux的共享文件服务,服务端和客户端都只能是Linux操作系统</li>
</ul>
<table>
<thead>
<tr>
<th>samba的服务名</th>
<th>对应端口号</th>
<th>作用</th>
</tr>
</thead>
<tbody>
<tr>
<td>smbd</td>
<td>139</td>
<td>提供文件的共享访问</td>
</tr>
<tr>
<td>nmbd</td>
<td>445</td>
<td>提供基于域名的访问</td>
</tr>
</tbody>
</table>
<h1 id="二samba服务搭建步骤">二、Samba服务搭建步骤:</h1>
<h2 id="准备配置网络yum源client相同">准备:配置网络、yum源(client相同)</h2>
<details>
<summary>点击查看代码</summary>
<pre><code># 1、更改主机名:
# hostnamectl set-hostname server
# bash
#
# 2、配置网络
# (1)虚拟交换机配置为192.168.100.0网段,网络适配器选择仅主机模式;
# (2)编辑网络配置文件:
# cd /etc/sysconfig/network-scripts/
# vim ifcfg-ens33
#需要修改的参数为:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.10
PREFIX=24
# (3)重启网络服务:
# systemctl restart network
# 3、配置yum源
# (1)先进入虚拟机设置,把系统镜像连接到虚拟机的光驱上;
# (2)挂载光驱里的镜像:
# mount /dev/cdrom /media/
mount: /dev/sr0 is write-protected, mounting read-only
# (3)修改yum源配置文件:
# cd /etc/yum.repos.d/
# ls
# vim local.repo
name=rhel
baseurl=file:///media
enabled=1
gpgcheck=0
# (4)清空yum源缓存并检索yum源
# yum clean all
# yum repolist
</code></pre>
</details>
<h2 id="server端配置步骤">Server端配置步骤:</h2>
<p>1、安装Samba的所有软件包</p>
<pre><code># yum -y install samba*
</code></pre>
<p>2、创建共享文件夹及标记文件</p>
<pre><code># mkdir /opt/samba
# cd /opt/samba
# touch flag
# ls
flag
</code></pre>
<p>3、修改共享目录的权限</p>
<pre><code># chmod -R o+w /opt/samba
</code></pre>
<p>4、打开Samba的示例文件</p>
<pre><code># vim /etc/samba/smb.conf.example
# 克隆会话配置selinux
# setsebool -P samba_domain_controller on
# setsebool -P samba_enable_home_dirs on
# chcon -t samba_share_t /opt/samba/ #Samba的共享目录
# setsebool -P samba_export_all_rw on
</code></pre>
<p>5、编辑Samba的主配置文件</p>
<pre><code># vim /etc/samba/smb.conf
加入:
comment = wangzhigang directories #对共享目录的注释、说明信息
path = /opt/samba #Samba的共享目录
interfaces = 192.168.100.10/24 #提供服务的主机
hosts allow = 192.168.100. #允许访问的主机或者网段
browseable = yes #该共享目录对客户机是否可见
valid users = luna,tom #可访问的用户名(只读)
write list = luna #具有写权限的用户
</code></pre>
<details>
<summary>点击查看详情</summary>
<pre><code># See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775
comment = wangzhigang directories
path = /opt/samba
interfaces = 192.168.100.10/24
hosts allow = 192.168.100.
browseable = yes
valid users = luna,tom
write list = luna
</code></pre>
</details>
<p>smb.conf文件的配置内容的含义:</p>
<p>:全局设置<br>
:用户目录共享设置<br>
:打印机共享设置<br>
:自定义名称的共享目录设置</p>
<p>workgroup:所在工作组名称<br>
security:安全级别,可用值为:share、user、server、domain<br>
passwd backend:设置共享账户文件的类型</p>
<p>6、检测Samba配置文件格式是否正确</p>
<pre><code># testparm
# 回车之后显示出部分内容
</code></pre>
<p>7、创建Samba用户(前提:必须是系统存在的用户)</p>
<pre><code># useradd luna #先创建系统用户
# useradd tom
# passwd luna #设置系统用户密码
# passwd tom
# smbpasswd -a luna #再创建为Samba用户,同时设置samba密码
# smbpasswd -a tom
</code></pre>
<p>8、查看所有Samba用户</p>
<pre><code># pdbedit –L
</code></pre>
<p>9、启动samba服务并设置为开机自启</p>
<pre><code># systemctl restart smb
# systemctl restart nmb
# systemctl enable smb
# systemctl enable nmb
</code></pre>
<p>10、查看端口(139,445)启动情况(如果命令不可用,需要安装net-tools包)</p>
<pre><code># netstat -pant
</code></pre>
<p>11、关闭防火墙</p>
<pre><code># firewall-cmd --permanent --add-service=samba
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
</code></pre>
<h2 id="client端配置步骤">Client端配置步骤:</h2>
<h3 id="1windows作client">1、Windows作Client:</h3>
<p>访问:\192.168.100.10,然后输入用户和密码即可访问</p>
<p>注意(CIFS特点):windows会自动记录上次访问的用户,所以第一次访问的用户,下一次仍旧默认使用该用户访问</p>
<p>解决用户切换的方法:进入cmd,输入netuse*/del命令,等待若干分钟后,即可切换其他用户登录Samba服务器</p>
<h3 id="2linux作client">2、Linux作Client:</h3>
<h3 id="1单用户访问">1)单用户访问:</h3>
<p><strong>方法一:</strong>使用Samba的Linux客户端软件访问</p>
<pre><code># 安装客户端软件包
# yum -y install samba-client
# 使用tom访问
# smbclient -U tom //192.168.100.10/wangzhigang
Enter tom's password:
Domain= OS= Server=
smb: \> ls
. D 0Sun Dec 19 16:44:58 2021
.. D 0Sun Dec 19 14:12:28 2021
flag N 0Sun Dec 19 14:12:53 2021
# 测试tom写权限(不可写)
smb: \> touch abc
touch: command not found
smb: \> ls
smb: \>
smb: \> quit
</code></pre>
<p><strong>方法二:</strong>使用挂载方式访问</p>
<pre><code># 以tom用户挂载到/mnt
# mount -t cifs -o username=tom,password=123456 //192.168.100.10/wangzhigang /mnt
# 查看是否访问到,并测试tom写权限(不可写)
# cd /mnt
# ls
flag
# touch abc
touch: cannot touch ‘abc’: Permission denied
#
</code></pre>
<h3 id="2多用户访问">2)多用户访问:</h3>
<pre><code># 安装软件包
# yum -y install samba-client cifs-utils
# 取消上面/mnt的挂载
# cd ~
# umount /mnt/
# cd /mnt/
# ls
# 创建/mnt/multi为挂载目录
# mkdir multi
# ls
multi
# 编辑永久挂载的配置文件(先使用tom获取读权限)
# vim /etc/fstab
于末行添加://192.168.100.10/wangzhigang /mnt/multi cifs username=tom,password=000000,multiuser,sec=ntlmssp 00
# mount -a
# 查看是否访问到,并测试tom写权限(不可写)
# cd /mnt/multi
# ls
flag
# touch abc
touch: cannot touch ‘abc’: Permission denied
# 创建luna用户,并切换为luna
# cd
# useradd luna
# su - luna
# 使用luna登录并临时获取写权限
$ cifscreds add -u luna 192.168.100.10
Password:
# 查看是否访问到,并测试写权限(创建成功即获取写权限)
$ cd /mnt/multi/
$ ls
flag
$ touch abc
$ ls
abcflag
</code></pre>
<p><strong>声明:未经许可,不得转载</strong></p><br><br>
来源:https://www.cnblogs.com/wzgwzg/p/15558926.html
頁:
[1]