Linux-CenOS7 Samba的安装与配置

Samba属于GNU Public License(简称GPL)的软件;因此,你可以合法且免费地使用它;它重新实现了SMB/CIFS协议,可以在各个平台共享文件和打印机。

1991年,还是大学生的Andrew Tridgwell,有三台机器,分别是Microsoft的DOS系统、DEC的Digital Unix系统、以及Sun的Unix系统。当时的技术无法让三者共享文件。为此,他开发了samba并将其开源。

本来改名为smbserver,但是一家商业公司注册了SMBServer商标。他被告知不能使用。于是执行了grep -i '^s.*m.*b' /usr/share/dict/words,从中选择了samba这个词。

什么是SMB?SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议,而Samba则是将SMB协议搬到UNIX上来应用;Samba的核心是SMB(Server Message Block)协议。

SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,更能与全世界的电脑分享资源;因为互联网上千千万万的主机所使用的通讯协议就是TCP/IP。

SMB是在会话层(ession layer)和表示层(presentation layer)以及小部分应用层(applicationlayer)的协议。SMB使用了NetBIOS的应用程序接口(Application Program Interface,简称API)。

另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为CIFS(Common Internet File System), 并且加入了许多新的特色,而Samba亦支持了NT Lan Manager 0.12等 SMB 的延伸协议,这是得Samba具有管理NT网域的能力。

访问需求如下

/home/samba/share 允许Share、SharePC访问; /home/samba/company 允许SharePC访问

共享名路径权限
SHAREDOCS/home/samba/share仅允许特定用户进行读写访问
COMPANYDOCS/home/samba/company仅允许特定用户进行读写访问

1. 安装Samba

yum -y install samba samba-client samba-common

查看安装版本信息

[root@localhost samba]# rpm -qi samba
Name        : samba
Epoch       : 0
Version     : 4.4.4
Release     : 12.el7_3
Architecture: x86_64
Install Date: 2017年02月06日 星期一 20时44分28秒
Group       : System Environment/Daemons
Size        : 1869273
License     : GPLv3+ and LGPLv3+
Signature   : RSA/SHA256, 2017年01月18日 星期三 08时01分25秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : samba-4.4.4-12.el7_3.src.rpm
Build Date  : 2017年01月17日 星期二 14时10分29秒
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.samba.org/
Summary     : Server and Client software to interoperate with Windows machines
Description :
Samba is the standard Windows interoperability suite of programs for Linux and
Unix.

2. 配置Samba服务器

创建共享目录

cd /home
mkdir -p samba/share samba/company 

配置内核参数

ulimit -n 16384
vim /etc/security/limits.conf
// 在最后加入以下内容
- nofile 16384

Tip: 这主要是避免在启动Samba时出现以下警告信息: rlimit_max: increasing rlimit_max (1024) tominimum Windows limit (16384)

备份原有的配置文件

# cd /etc/samba/
# cp smb.conf smb.conf.bak

删除原有所有内容,

echo '' > smb.conf
vim smb.conf

添加如下内容:

#======================= Global Settings =====================================  
[global]  
  
# ----------------------- Network Related Options -------------------------  
# 定义工作组,也就是windows中的工作组概念
workgroup=WORKGROUP
# 定义Samba服务器的简要说明
server string= Samba Server Version %v
# 定义windows中显示出来的计算机名称
netbios name=CentOS_Samba
  
# ----------------------- Standalone Server Options ------------------------  
security=user
  
# --------------------------- Logging Options -----------------------------  
#定义Samba用户的日志文件,%m代表客户端主机名 
log file = /var/log/samba/log.%m
  
#============================ Share Definitions ==============================  
[SHAREDOCS]  
comment=通用共享  
path=/home/samba/share
browseable=yes  
available=yes  
writable=yes  
admin users=@SharePC  
valid users=@Share @SharePC  
write list=@Share @SharePC  
create mask=0770  
directory mask=0770  
  
[COMPANYDOCS]  
comment=公司资料  
path=/home/samba/company  
public=no  
browseable=yes  
available=yes  
writable=yes  
admin users=@SharePC  
valid users=@SharePC  
write list=@SharePC  
create mask=0770  
directory mask=0770

3. 创建用户并分配权限

创建操作系统用户

useradd Share
useradd SharePC

修改操作系统用户的密码(我输入的是123456)

[root@localhost samba]# passwd Share
更改用户 Share 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

//效果同上
[root@localhost samba]# passwd SharePC

创建SAMBA用户

smbpasswd -a Share
smbpasswd -a SharePC

授权共享目录

chown Share share
chown SharePC company

4. 防火墙关闭

关闭firewall

systemctl stop firewalld.service //停止firewall
systemctl disable firewalld.service //禁止firewall开机启动

关闭iptables

service iptables stop

关闭SELinux:

setenforce 0

设置SELINUX=disabled(需要重启电脑)

vim /etc/selinux/config
//文件中设置,
SELINUX=disabled 
//然后重启服务器。

5. 开机启动smb服务

systemctl restart smb
systemctl enable smb
systemctl status smb

6. 客户端链接

Linux

[root@localhost ~]# smbclient -L 192.168.2.206 -U Share
Enter Share's password: 
Domain=[WORKGROUP //定义工作组,也就是WINDOWS中的工作组概念] OS=[Windows 6.1] Server=[Samba 4.4.4]

	Sharename       Type      Comment
	---------       ----      -------
	SHAREDOCS       Disk      通用共享
	COMPANYDOCS     Disk      公司资料
	IPC$            IPC       IPC Service (Samba Server Version 4.4.4 //定义Samba服务器的简要说明)
Domain=[WORKGROUP //定义工作组,也就是WINDOWS中的工作组概念] OS=[Windows 6.1] Server=[Samba 4.4.4]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

Windows

共享文件夹:\\192.168.2.206\sharedocs
用户名:Share

MacOS

打开Finder(或在桌面),CMD + k,可以得到页面,输入:

smb://username@ip/sharename

smb://Share@192.168.2.206/SHAREDOCS
  • 1)Finder->Go(前往)->Connete to Server...(连接服务器)(Command+K)
    • 输入:smb://主机IP或主机名/共享名

    提示:输入samba地址之后可以点击旁边的+按钮收藏,下次就不用再输入了。

  • 2)输入密码(没有密码就为空)
  • 3)共享目录会自动打开,自动挂载

提示:如果finder不小心关闭后,不需要重新连接,可以再“共享的”列表里找到。

.DS_Store安全隐患

由于Finder自带的.DS_Store包含了太多信息,如果在服务器产生.DS_Store会造成安全隐患。如果没有特殊配置,你用Finder管理远程的文件夹会自动产生.DS_Store。

在云端检查你的共享文件夹,如果发现.DS_Store,立即删除!

ls -a /home/USER_NAME/shared_directory 如何让Finder不在远程连接时产生.DS_Store?

打开Mac的Terminal,输入

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

然后重启Mac,再试试远程连接。

转载于:https://my.oschina.net/leeyisoft/blog/833315

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值