Ubuntu 14.04 文件服务器--samba的安装和配置
samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu 1404上安装和配置samba
更新源列表 打开"终端窗口",输入"sudo apt-get update"--回车--"输入当前登录用户的管理员密码"--回车,就可以了。
安装samba 打开"终端窗口",输入"sudo apt-get install samba samba-common"--回车--输入"y"--回车--安装完成。
新建共享目录并设置权限 1、打开"终端窗口",输入"sudo mkdir /home/share"--回车--共享目录share新建成功。 2、输入"sudo chmod 777 /home/share"--回车,这样用户就对共享目录有了写权限。
打开配置文件smbconf 打开"终端窗口",输入"sudo gedit /etc/samba/smbconf"--回车--打开了配置文件smbconf。
修改配置文件smbconf 1、输入"security = user"。 2、输入"图B"中指定的语句--保存。
新建访问共享资源的用户和设置密码 1、打开"终端窗口",输入"sudo useradd smbuser"--回车--用户创建成功。 2、输入"sudo smbpasswd -a smbuser"--回车--输入两次密码--回车--密码设置成功,这个用户属于smb组。 3、输入"sudo service smbd restart"重启samba服务--回车--服务重启成功。
访问共享名为myshare的共享目录 1、在"运行"窗口中输入"\\19216814"--回车--双击打开myshare--回车--输入用户名和密码--回车--访问成功。
SAMBA可以让Windows与Linux之间共享文件系统,还可以成为打印机服务器(虽然现在不怎么需要这个功能)。
使用FTP传输文件有个小小的问题,那就是无法直接修改主机上面的文件数据。samba则不会。
CIFS (common Internet File System),是微软操作系统上面的文件系统。最常见的就是目前的“网上邻居”。不过CIFS只能让windows机器沟通,NFS是Unix-like上面的文件共享,只能让Unix机器沟通。
samba原为 Server Message Block(SMB)文件系统,后来在注册的时候因为需要而注册为samba(热情奔放的拉丁舞蹈)。
samba 这个文件系统是架构在NetBIOS( Network Basic Input/Output System)这个通信协议上面开发出来的。NetBIOS是无法跨越路由的。
NetBIOS在局域网内实在是很好用,所以微软的网络架构就是用了这个协议来进行沟通。但通过NetBios over TCP/IP 的技术,我么就可以跨路由使用SAMBA服务器所提供的功能。当然,Samba还是比较广泛地是用在LAN里。
NetBios 当初发展时就着眼于局域网内的快速数据交流,而因为是定义在局域网内,因此它并没有使用了类似 TCP/IP 之类的传输协议,也就不需要IP的设置。其实主机在Netbios协议当中的定义为使用“NetBios name”,每一台主机必须要有不同的NetBios name才行,额头文件数据就是在不同的NetBios name 之间沟通。在同一个组中,NetBios 必须是独一无二的。
SAMBA是通过两个服务来控制的,分别是:
nmbd:这个daemon是用来管理工作组、NetBIOS Name等的解析。主要利用UDP协议开启port137、138来负责名称解析的任务;
smbd:这个daemon的主要功能就是用来管理SAMBA主机共享的目录、文件与打印机等。主要利用可靠的TCP协议来传输数据,开放的端口为139与445。
samba的配置文件/etc/samba/smbconf主要包括两部分:
global中就是一些服务器的全局参数;
共享资源名称则是针对开放的目录来进行权限方面的设置。
在新版本的samba中,匿名访问有所变化:
特别注意以下几点:
因为SAMBA会对外提供服务,因此SELinux会特别关照一下这个服务。
使用samba是有一定的危险性的,很多网络攻击的蠕虫、病毒、木马就是通过网上邻居来攻击的。为了阻挡不必要的连接,默认的SELinux已经关闭了很多SAMBA连接的功能,因此可能很多客户端的挂载可能会有问题。
1、SELinux的相关议题
2、防火墙议题:iptables来管理
3、通过内建的SAMBA设置(smbconf)
通过windows的网络搜索;
通过 port 445的特殊登陆方式:
```
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
unix charset = utf-8
display charset = utf-8
#printing = cups
#printcap name = cups
#load printers = yes
#cups options = raw
browseable = yes
hosts allow = 192168
log file = /var/log/samba/log%m
[共享]
comment = Public
path = /home/samba
public = yes
writeable = yes
browseable = yes
[myself]
comment = zhang
path = /home/zhang
valid users = zhang,root
writeable = yes
guest ok = no #是否允许匿名访问
[group]
comment = group share
path = /home/group
valid users = @group
writeable = yes
```
1samba服务器目录:
企业数据目录:/companydata
公共目录:/companydata/share
销售部目录:/companydata/sales
技术部:/companydata/tech
2企业员工情况:
总经理:gm
销售部:销售部经理 redking、员工 sky、员工 jane
技术部:技术部经理 michael、员工 bill、员工 joy
3搭建samba文件服务器,建立公共共享目录,允许所有人访问,权限为只读,为销售部和技术部分别建立单独的目录,只可以总经理和相应部门员工访问,并且公司员工禁止访问非本部门的共享目录。
案例解析:
1需求分析
对于建立公共目录public字段就可以实现匿名访问,员工只能访问本部门的共享目录,禁止访问非本部门的共享目录,可以通过设置目录共享字段“browseable = no”及字段“valid users”来实现其隐藏功能和相应的访问权限。这样设置不能很好得解决同一目录多种需求的权限设置,所以需要建立独立配置文件,为每个部门建立一个组后并为每个组建立配置文件来实现隔离用户权限会比较灵活。
2 解决方案
1)建立各部门专用共享目录
使用mkdir建立需求的共享目录以便分门别类的存储相应资料。
[root@RHEL ~]#mkdir /companydata
[root@RHEL ~]#mkdir /companydata/share
[root@RHEL ~]#mkdir /companydata/sales
[root@RHEL ~]#mkdir /companydata/tech
同时设置/companydata共享目录的用户权限
[root@RHEL ~]#chmod –R 777 /companydata
2)添加samba服务器描述及设置smbpasswd文件
默认/etc/samba/目录下没有smbpasswd文件,要先关闭samba的tdbsam验证。
解决方法:在smbconf文件中注释掉passdb backend = tdbsam 一行,为了指定samba用户的验证我们加上这一条smb passwd file = /etc/samba/smbpasswd,然后保存退出。
3)添加用户和组
先建立销售部组sales,技术部组tech,然后使用useradd命令添加总经理帐号gm及各个员工的帐号并加入相应的用户组。
[root@RHEL ~]#groupadd sales
[root@RHEL ~]#groupadd tech
[root@RHEL ~]#useradd gm
[root@RHEL ~]#useradd –g sales redking
[root@RHEL ~]#useradd –g sales sky
[root@RHEL ~]#useradd –g sales jane
[root@RHEL ~]#useradd –g tech michael
[root@RHEL ~]#useradd –g tech bill
[root@RHEL ~]#useradd –g tech joy
接着使用smbpasswd命令添加samba用户:
[root@RHEL ~]#smbpasswd –a gm
New SMB password:
Retype new SMB password:
Added user gm
[root@RHEL ~]#smbpasswd –a redking
New SMB password:
Retype new SMB password:
Added user reding
[root@RHEL ~]#smbpasswd –a sky
New SMB password:
Retype new SMB password:
Added user syk
[root@RHEL ~]#smbpasswd –a jane
New SMB password:
Retype new SMB password:
Added user jane
[root@RHEL ~]#smbpasswd –a michael
New SMB password:
Retype new SMB password:
Added user michael
[root@RHEL ~]#smbpasswd –a bill
New SMB password:
Retype new SMB password:
Added user bill
[root@RHEL ~]#smbpasswd –a joy
New SMB password:
Retype new SMB password:
Added user joy
4)配置smbconf文件
(1)建立单独配置文件
用户配置文件使用用户名命令,组配置文件使用组名命令。
[root@RHEL ~]#cp /etc/samba/smbconf /etc/samba/gmsmbconf
[root@RHEL ~]#cp /etc/samba/smbconf /etc/samba/salessmbconf
[root@RHEL ~]#cp /etc/samba/smbconf /etc/samba/techsmbconf
(2)设置主配置文件smbconf
配置smbconf主配置文件,在global节点中添加相应字段,确保samba服务器的主配置文件可以调用独立的用户配置文件和组配置文件。
include = /etc/samba/%Usmbconf表示使samba服务器加载/etc/samba目录下格式为“用户名smbconf”的配置文件。
include = /etc/samba/%Gsmbconf表示使samba服务器加载/etc/samba目录下格式为“组名smbconf”的配置文件。
设置共享目录/companydata/share
添加如下内容:
[public]
comment=public data
path=/companydata/share
public=yes
5)设置总经理gm配置文件
[root@RHEL ~]#vim /etc/samba/gmsmbconf
添加如下内容:
[sales]
comment=sales data
path=/companydata/sales
writable=yes
valid users=gm
[tech]
comment=tech data
path=/companydata/tech
writable=yes
valid users=gm
6)设置销售部组sales配置文件
[root@RHEL ~]#vim /etc/samba/salessmbconf
添加如下内容:
[sales]
comment=sales data
path=/companydata/sales
writable=yes
valid users=@sales,gm
7)设置技术部组tech配置文件
[root@RHEL ~]#vim /etc/samba/techsmbconf
添加如下内容:
[tech]
comment=tech data
path=/companydata/tech
writable=yes
valid users=@tech,gm
8)开启samba服务
[root@RHEL ~]#service smb start
9)测试
分别用所设置账号进行测试。
这个是smbconf的所有配置把它放在配置文件里面,删除里面所有的东西!多的没有用
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log%m
max log size = 50
security = share
passdb backend = tdbsam
load printers = yes
cups options = raw
[samba]
comment = Network Logon Service
path = /var/samba
guest ok = yes
writable = yes
share modes = yes
writable = yes
在mkdir /var/samba
chmod 777 /var/samba
结果如图!
具体操作步骤:
1、添加share文件夹到根目录下。
2、查看share目录权限。
3、为全部用户添加share目录的写入权限。
4、添加gary账户到samba服务器中。
5、打开配置文件smbconf,修改安全级别为user,并在文件尾部加入share共享配置项。
6、运行testparm命令检查配置文件,确认无误之后重启samba服务。
7、客户端登录gary账户验证。
8、samba中设置共享目录成功界面如下。
搭建存储服务器需要先准备一台拥有足够存储空间和配置的服务器,并配置相关的网络连接。
对于 Windows 系统,可以使用 Windows Server 搭建存储服务器:
安装 Windows Server 操作系统。
启动服务器,进入控制面板。
在“程序”选项卡中,选择“启用或关闭 Windows 功能”。
选择“存储服务器”功能,然后单击“确定”。
按照提示,完成存储服务器的配置。
对于 Ubuntu 系统,可以使用 Samba 搭建存储服务器:
在终端中,执行以下命令安装 Samba:sudo apt-get install samba
创建一个存储文件夹,并配置存储权限。
编辑 Samba 配置文件 /etc/samba/smbconf,添加以下内容:
[共享名称]
path = /路径/到/存储文件夹
writable = yes
browsable = yes
guest ok = yes
重启 Samba 服务:sudo service smbd restart
在客户端中,添加存储服务器,并验证是否能够正常连接。
注意:以上步骤是大致步骤,具体步骤及详细配置方式可以参考官方文档或者搜索教程
0条评论