大家好,今天我们分享linux 部署Samba服务器
首先我们要知道,Samba服务器就是利用smb协议实现文件在局域网中的传输
它主要的作用: 实现Linux/Unix主机和windows主机系统的文件传输
介绍一下它的实验环境
要有一台windows 主机 ,我这里使用windows 10,作为客户端
- 要有一台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
4月 17 17:14:00 localhost.localdomain systemd[1]: Starting Samba SMB Daemon...
4月 17 17:14:02 localhost.localdomain smbd[8161]: [2022/04/17 17:14:02.218556, 0] ../../lib/util/become_daemon.c:136(daemon_ready)
4月 17 17:14:02 localhost.localdomain smbd[8161]: daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
4月 17 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
4月 18 14:33:34 localhost.localdomain systemd[1]: Starting Samba SMB Daemon...
4月 18 14:33:35 localhost.localdomain smbd[4813]: [2022/04/18 14:33:35.516674, 0] ../../lib/util/become_daemon.c:136(daemon_ready)
4月 18 14:33:35 localhost.localdomain smbd[4813]: daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
4月 18 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服务就到这里了,谢谢大家