Samba是在Linux系统上实现的SMB(Server Messages Block,信息服务块)协议的一款免费软件。它实现在局域网内共享文件和打印机,是一个客户机/服务器型协议。客户机通过SMB协议访问服务器上的共享文件系统。可以实现Windows系统访问Linux系统上的共享资源
本安装教程是基于Ubuntu 14.04实测的,在Ubuntu18.04上也实测可用。
1 更新软件源列表
打开“终端窗口”,输入 sudo su ->回车->”输入当前用户管理员密码”->输入” apt-get update”->回车->回车,具体如下图:
2 安装Samba
打开"终端窗口",输入 apt-get install samba samba-common –>回车–>输入"y"–>回车–>安装完成。如下图,因为我已经安装过了,所以没有安装的软件资源了。
3 新建共享目录并设置权限
该共享目录可自行创建,一般公司使用服务器的话就会为您新建一个共享目录,而私人电脑的话,我一般就把整个home目录设置为共享目录,方便Windows下访问我的虚拟机上的文件。
1、打开"终端窗口",输入 sudo mkdir /home/share –>回车–>共享目录share新建成功。
2、输入 sudo chmod 777 /home/share -R –>回车,这样用户就对共享目录有了写权限。
4 修改Samba文件配置
Ubuntu上的Samba的配置文件为/etc/samba/smb.conf,该文件记录相关的规则及共享信息,是Samba非常核心的配置文件,修改前建议备份一份。
1.备份Samba配置配置文件:
2.增加内容如下,首先在[global]下增加security项
3.其次在smb.conf文件的末尾添加如下配置信息并保存即可:
4.设置window系统登入共享文件夹的用户名和密码,其中用户名必须为Ubuntu中的用户。本例子中使用用户“smbuser”,在该过程中需要二次输入密码。
5.重新启动smb服务。
6.查看安装samba服务的虚拟机的ip地址,windows下需要通过该ip地址访问共享文件夹。
5 访问共享名为myshare的共享目录
在"运行"窗口中输入"\192.168.88.11"–>回车–>双击打开myshare–>回车–>输入用户名和密码–>回车–>访问成功。
访问成功:
1)建一个系统用户\x0d\x0a\x0d\x0a[root@linux samba]# useradd samba (建一个名叫samba的用户)\x0d\x0a[root@linux samba]# passwd samba(给samba用户添加密码)\x0d\x0aChanging password for user samba.\x0d\x0aNew password: (密码要六位以上,不显示在屏幕上)\x0d\x0aBAD PASSWORD: it does not contain enough DIFFERENT characters\x0d\x0aRetype new password: (确认密码)\x0d\x0apasswd: all authentication tokens updated successfully.\x0d\x0a\x0d\x0a2)然后创建samba帐户\x0d\x0a\x0d\x0a[root@linux samba]# smbpasswd -a samba \x0d\x0a(-a必须加,为了生成密码文件smbpasswd,该密码是windows登陆Linux的samba用户密码)\x0d\x0aNew SMB password:\x0d\x0aRetype new SMB password:\x0d\x0aunable to open passdb database.\x0d\x0aAdded user samba.\x0d\x0a\x0d\x0a3)查看一下生成的用户名、密码\x0d\x0a\x0d\x0a[root@linux samba]# vi /etc/samba/smbpasswd\x0d\x0asamba:500:A9C604D244C4E99DAAD3B435B51404EE:ACB98FD0478427CD18949050C5E87B47:[UX ]:LCT-468268E6:\x0d\x0a\x0d\x0a4)重新启动samba服务\x0d\x0a\x0d\x0a[root@linux samba]# service smb restart\x0d\x0aShutting down SMB services: [ OK ]\x0d\x0aShutting down NMB services: [ OK ]\x0d\x0aStarting SMB services: [ OK ]\x0d\x0aStarting NMB services: [ OK ]1.samba服务器目录:企业数据目录:/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验证。
解决方法:在smb.conf文件中注释掉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)配置smb.conf文件
(1)建立单独配置文件
用户配置文件使用用户名命令,组配置文件使用组名命令。
[root@RHEL ~]#cp /etc/samba/smb.conf /etc/samba/gm.smb.conf
[root@RHEL ~]#cp /etc/samba/smb.conf /etc/samba/sales.smb.conf
[root@RHEL ~]#cp /etc/samba/smb.conf /etc/samba/tech.smb.conf
(2)设置主配置文件smb.conf
配置smb.conf主配置文件,在global节点中添加相应字段,确保samba服务器的主配置文件可以调用独立的用户配置文件和组配置文件。
include = /etc/samba/%U.smb.conf表示使samba服务器加载/etc/samba目录下格式为“用户名.smb.conf”的配置文件。
include = /etc/samba/%G.smb.conf表示使samba服务器加载/etc/samba目录下格式为“组名.smb.conf”的配置文件。
设置共享目录/companydata/share
添加如下内容:
[public]
comment=public data
path=/companydata/share
public=yes
5)设置总经理gm配置文件
[root@RHEL ~]#vim /etc/samba/gm.smb.conf
添加如下内容:
[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/sales.smb.conf
添加如下内容:
[sales]
comment=sales data
path=/companydata/sales
writable=yes
valid users=@sales,gm
7)设置技术部组tech配置文件
[root@RHEL ~]#vim /etc/samba/tech.smb.conf
添加如下内容:
[tech]
comment=tech data
path=/companydata/tech
writable=yes
valid users=@tech,gm
8)开启samba服务
[root@RHEL ~]#service smb start
9)测试
分别用所设置账号进行测试。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)