CentOS7.2安装Samba服务

前言

Samba是在Linux系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 SMB(Server Messages Block, 信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统,打印机及其他资源。

安装Samba

[root@localhost ~]# yum install -y samba samba-client samba-common

备份Samba配置文件

[root@localhost ~]# cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak

添加用户

[root@localhost ~]# useradd smb

设置用户密码

[root@localhost ~]# passwd smb

设置Samba密码

[root@localhost ~]# smbpasswd -a smb
New SMB password:
Retype new SMB password:
Added user smb.

smbpasswd 命令是用于维护 Samba 服务器的用户帐号的,具体如下:

// 添加 Samba 用户帐号
# smbpasswd -a sambauser 
// 禁用 Samba 用户帐号
# smbpasswd -d sambauser
// 启用 Samba 用户帐号
# smbpasswd -e sambauser
// 删除 Samba 用户帐号
# smbpasswd -x sambauser

设置Samba目录权限

[root@localhost ~]# chmod -R 0755 /opt/smb/

设置Samba目录宿主

[root@localhost ~]# chown -R smb:smb /opt/smb/

配置smb.conf文件

[root@localhost ~]# vi /etc/samba/smb.conf
# 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 #samba的工作组,设置成 Windows 的工作组
 security = user  #安全选项,可以是 share|user|server|domain,安全级别递增
 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 = root
 create mask = 0664
 directory mask = 0775
 
[rootdir] #自定义的共享文件夹
 comment = SambaRoot
 path = /home/samba/ #共享的路径
 read only = No
[root@localhost opt]# testparm

启动Samba服务并添加到自启动列表

[root@localhost ~]# systemctl start smb
[root@localhost ~]# systemctl enable smb

打开Samba防火墙端口

# Samba需要开放下面五个端口:UDP 137、UDP 138、TCP 139、TCP 445、TCP 901
[root@localhost ~]# firewall-cmd --permanent --add-port=137/udp
[root@localhost ~]# firewall-cmd --permanent --add-port=138/udp
[root@localhost ~]# firewall-cmd --permanent --add-port=139/tcp
[root@localhost ~]# firewall-cmd --permanent --add-port=445/tcp
[root@localhost ~]# firewall-cmd --permanent --add-port=901/tcp

如果 Windows 下访问 Linux 下共享目录,提示没有权限:

确保 Linux 下防火墙关闭或者是开放共享目录权限;

确保 Samba 服务器配置文件 smb.conf 设置没有问题;

确保 setlinux 关闭 , 可以用 setenforce 0 命令执行,默认 SELinux 禁止网络上对 Samba 服务器上的共享目录进行写操作。

posted @ 2021-01-20 22:13  奔跑的猫哥  阅读(84)  评论(0)    收藏  举报