大家好,今天我们分享linux 部署Samba服务器

首先我们要知道,Samba服务器就是利用smb协议实现文件在局域网中的传输

  它主要的作用:   实现Linux/Unix主机和windows主机系统的文件传输

介绍一下它的实验环境

  1. 要有一台windows 主机     ,我这里使用windows 10,作为客户端
    
  2. 要有一台linux主机,我这里使用centos 7, 作为服务器

接下来 ,配置主机环境
这是我们windows 主机的ip地址

在这里插入图片描述

这是我们服务器地址

    [root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.12  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe87:afa6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:87:af:a6  txqueuelen 1000  (Ethernet)
        RX packets 6  bytes 360 (360.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 86  bytes 9124 (8.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

测试linux主机和windows 主机的网络通信(显示没问题)

在这里插入图片描述

我们xshell连接一下服务器(其它的工具也可以)
在这里插入图片描述
测试服务器的网络:

[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=128 time=6.21 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=128 time=6.43 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=128 time=4.03 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=128 time=8.72 ms

实验案例:

这就是它的案例和环境

John (总经理)
mike ,cali   (市场部)
cela ,cado   (工厂部)
管理员:administrator



共享名               共享目录               用户
manager           /opt/manager         John(rw)administrator (rw)
market              /opt/marker           @ marker(rw),   john(ro),    administrator(rw)
factory              /opt/factory           @  factory(rw),   john(ro),    administrator(rw)


测试yum源

在这里插入图片描述

安装Samba服务

[root@localhost ~]# yum install  samba.x86_64 -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * centos-ceph-nautilus: mirrors.cn99.com
 * centos-nfs-ganesha28: mirrors.cn99.com
 * centos-openstack-train: mirrors.cn99.com
 * centos-qemu-ev: mirrors.cn99.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                      | 3.6 kB  00:00:00     
centos-ceph-nautilus                                                                                      | 3.0 kB  00:00:00     
centos-nfs-ganesha28                                                                                      | 3.0 kB  00:00:00     
centos-openstack-train                                                                                    | 3.0 kB  00:00:00     
centos-qemu-ev                                                                                            | 3.0 kB  00:00:00     
docker-ce-stable                                                                                          | 3.5 kB  00:00:00     
docker-ce-test                                                                                            | 3.5 kB  00:00:00     
epel                                                                                                      | 4.7 kB  00:00:00     
extras                                                                                                    | 2.9 kB  00:00:00  

创建共享目录:

[root@localhost ~]# cd /opt/
[root@localhost opt]# mkdir manager market factory

在这里插入图片描述

这是Samba有关的文件

[root@localhost samba]# ls
lmhosts  smb.conf  smb.conf.example
[root@localhost samba]# 

启动Samba服务

[root@localhost samba]# systemctl  start  smb.service 

截图:

在这里插入图片描述

也可以观察它的状态:

[root@localhost samba]# systemctl  status smb.service 
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2022-04-17 17:14:02 CST; 1min 43s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 8161 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4
   Memory: 27.3M
   CGroup: /system.slice/smb.service
           ├─8161 /usr/sbin/smbd --foreground --no-process-group
           ├─8166 /usr/sbin/smbd --foreground --no-process-group
           ├─8167 /usr/sbin/smbd --foreground --no-process-group
           └─8168 /usr/sbin/smbd --foreground --no-process-group

417 17:14:00 localhost.localdomain systemd[1]: Starting Samba SMB Daemon...
417 17:14:02 localhost.localdomain smbd[8161]: [2022/04/17 17:14:02.218556,  0] ../../lib/util/become_daemon.c:136(daemon_ready)
417 17:14:02 localhost.localdomain smbd[8161]:   daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
417 17:14:02 localhost.localdomain systemd[1]: Started Samba SMB Daemon.
[root@localhost samba]# 

配置Samba服务开机自启动

[root@localhost samba]# systemctl  enable  smb.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@localhost samba]# 

创建文件

[root@localhost opt]# cd factory/
[root@localhost factory]# touch factory
[root@localhost factory]# cd ../manager
[root@localhost manager]# touch manager
[root@localhost manager]# cd ../market/
[root@localhost market]# touch  market
[root@localhost market]# ls
market

给权限

[root@localhost market]# cd ..
[root@localhost opt]# chm
chmem  chmod  
[root@localhost opt]# chmod -R 777 *

创建用户

[root@localhost opt]# useradd john
[root@localhost opt]# useradd mike
[root@localhost opt]# useradd  celi
[root@localhost opt]# useradd  cali
[root@localhost opt]# useradd kado
[root@localhost opt]# useradd cela

[root@localhost opt]# useradd administrator

创建组

[root@localhost opt]# groupadd market
[root@localhost opt]# groupadd factory

用户·加组

[root@localhost opt]# gpasswd -a mike market
正在将用户“mike”加入到“market”组中
[root@localhost opt]# gpasswd -a cali market
正在将用户“cali”加入到“market”组中
[root@localhost opt]# gpasswd  -a cela factory
正在将用户“cela”加入到“factory”组中
[root@localhost opt]# gpasswd  -a kado factory
正在将用户“kado”加入到“factory”组中

转化本地用户为smb用户

[root@localhost opt]# smbpasswd -a john
New SMB password:
Retype new SMB password:
Added user john.
[root@localhost opt]# smbpasswd -a mike
New SMB password:
Retype new SMB password:
Added user mike.
[root@localhost opt]# smbpasswd -a cali
New SMB password:
Retype new SMB password:
Added user cali.
[root@localhost opt]# smbpasswd -a cela
New SMB password:
Retype new SMB password:
Added user cela.
[root@localhost opt]# smbpasswd -a kado
New SMB password:
Retype new SMB password:
Added user kado.
[root@localhost opt]# smbpasswd -a administrator
New SMB password:
Retype new SMB password:
Added user administrator.

编辑Samba配置文件

[root@localhost ~]# vim /etc/samba/smb.conf

下面就是Samba服务的配置文件内容

# 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.

[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
                                              

做有效信息过滤

[root@localhost ~]# grep -v "^#" /etc/samba/smb.conf >/etc/samba/smb.conf.bak
[root@localhost ~]# vim /etc/samba/smb.conf.bak 

这些都是有效信息

[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
                                              

在.bak文件中添加以下的信息,以满足本次实例的需要

[manager]
         comment = manager guanli
         path = /opt/manager
         valid users = john,administrator
         writable = yes

[market]
       comment =market guanli
       path = /opt/market
       valid users = @market,john,administrator
      writable = no
      write list = @market,administrator




[factory]
       comment =factory guanli
       path = /opt/factory
       valid users = @market,john,administrator
      writable = no
      write list = @factory,administrator

这样写:
在这里插入图片描述

这样做

[root@localhost ~]# cd /etc/samba/
[root@localhost samba]# ls
lmhosts  smb.conf  smb.conf.bak  smb.conf.example
[root@localhost samba]# mv smb.conf.bak smb.conf
mv:是否覆盖"smb.conf"? y
[root@localhost samba]# 

重启服务

[root@localhost samba]# systemctl   restart  smb

观察它的状况:
(以下是正常的)

[root@localhost samba]# systemctl   status  smb
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2022-04-18 14:33:35 CST; 56s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 4813 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4
   CGroup: /system.slice/smb.service
           ├─4813 /usr/sbin/smbd --foreground --no-process-group
           ├─4815 /usr/sbin/smbd --foreground --no-process-group
           ├─4816 /usr/sbin/smbd --foreground --no-process-group
           └─4817 /usr/sbin/smbd --foreground --no-process-group

418 14:33:34 localhost.localdomain systemd[1]: Starting Samba SMB Daemon...
418 14:33:35 localhost.localdomain smbd[4813]: [2022/04/18 14:33:35.516674,  0] ../../lib/util/become_daemon.c:136(daemon_ready)
418 14:33:35 localhost.localdomain smbd[4813]:   daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
418 14:33:35 localhost.localdomain systemd[1]: Started Samba SMB Daemon.
[root@localhost samba]# 

使用客户端进行访问

win键+r键
在这里插入图片描述

在这里插入图片描述
用户名:administrator(这是我们自己设置的Samba服务的管理员)

密码: 123(这是我们自己设置的)
登录

在这里插入图片描述
在这里插入图片描述
administrator 管理员用户在这里是不受任何限制的

接下来,在cmd 窗口当中删除刚才共享的缓存数据

C:\Users\Administrator>net use * /delete
你有以下的远程连接:

                    \\192.168.1.12\IPC$
继续运行会取消连接。

你想继续此操作吗? (Y/N) [N]: y
命令成功完成。


C:\Users\Administrator>

换一下用户

在这里插入图片描述

一样进来了

在这里插入图片描述

john用户在manager 这个文件当中是可以的
(有写入权限)

在这里插入图片描述

而在这个文件夹当中只可以看。不可以写(权限不够)

在这里插入图片描述

再次删除用户的缓存数据

C:\Users\Administrator>net use * /delete
你有以下的远程连接:

                    \\192.168.1.12\IPC$
继续运行会取消连接。

你想继续此操作吗? (Y/N) [N]: y
命令成功完成。

使用Mike用户登录

在这里插入图片描述

mike可以进入到自己的目录

在这里插入图片描述

Mike无法进入

在这里插入图片描述

mike对于自己的部门只有看的权限

在这里插入图片描述

在自己的文件夹中可以有读写权限

在这里插入图片描述

好了,有关于Linux部署Samba服务就到这里了,谢谢大家

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐