CentOS下SAMBA的搭建
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS下SAMBA的搭建相关的知识,希望对你有一定的参考价值。
一、Samba的由来:
早起网络中,档案数据传输大多使用FTP这个软件进行传送,FTP的弊端是无法直接修改服务器上面的数据,更新数据,只能靠来回拷贝,时间久了,容易混淆。于是就有了NFS(NetworkFile System),通过共享目录的挂载实现对Server上的档案数据读写更新,不过,NFS仅能让 Unix 机器沟通。在微软 ( Microsoft ) 上面也有类似的档案系统,,CLFS(CommonInternet File System)。 CIFS 只能让 Windows 机器沟通。介于Windows与 Unix-Like 这两个不同的平台相互分享档案数据的档案系统,于是出现了Samba。
二、Samba简介:
是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBios over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
SAMBA 主要靠两种服务来实现文件和打印机的共享;
smbd:处理文件和打印机共享请求的。端口号,139,445。
nmbd:处理NetBIOS名称服务请求和网络浏览功能的。端口号:137,138。
了解完samba之后,下来就是如何搭建和配置。
三、搭建前准备
1、环境介绍
服务端 CentOS ip地址
客户端 win7 与服务器同局域网的
2、安装samba软件
[[email protected]~]# rpm -qa | grep samba 查看是否安装了samba软件,没有安装先安装
[[email protected]~]# yum search samba 先查一下有没有相关的软件
[[email protected]~]# yum install samba 找到之后,那就安装吧
3、相关设定
安装好如何启动 samba 这个服务呢?并且设定好开机就启动他!
想要了解如何启动,得要使用 rpm 去找一下软件的启动方式,然后再去处理启动的行为啰!
先查询一下启动的方式为何:
[[email protected]~]# rpm -ql samba | grep ‘/etc‘
/etc/logrotate.d/samba
/etc/openldap/schema
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
/etc/rc.d/init.d/nmb //就是这两位仁兄了
/etc/rc.d/init.d/smb //就是这两位仁兄了
/etc/samba/smbusers
[[email protected]~]# /etc/rc.d/init.d/nmb start
启动 NMB 服务:
[[email protected]~]# /etc/rc.d/init.d/smb start
启动 SMB 服务:
设置开机自启:
[[email protected]~]# chkconfig nmb on
[[email protected]~]# chkconfig smb on
启动之后,观察有么有启动相应的port:
[[email protected]~]# neITtat -tunlp | grep ‘[sn]mb‘
关闭SElinux:
[[email protected]~]# setenforce 0
防火墙放行smb,nmb相应的端口:
编辑防火墙配置文件,放行445,137,138,139端口:
[[email protected]~]# vi /etc/sysconfig/iptables
-A INPUT-p udp -m udp --dport 445 -j ACCEPT
-A INPUT-p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT-p udp -m udp --dport 139 -j ACCEPT
-A INPUT-p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT-p udp -m udp --dport 138 -j ACCEPT
-A INPUT-p tcp -m tcp --dport 138 -j ACCEPT
-A INPUT-p tcp -m tcp --dport 137 -j ACCEPT
-A INPUT-p udp -m udp --dport 137 -j ACCEPT
配置完保存并重启防火墙:
[[email protected]~]# service iptables save
iptables:将防火墙规则保存到/etc/sysconfig/iptables:[确定]
[[email protected]~]# service iptables restart
iptables:将链设置为政策ACCEPT:filter [确定]
iptables:清除防火墙规则:[确定]
iptables:正在卸载模块:[确定]
iptables:应用防火墙规则:[确定]
这样,samba就装好了,下面就是/etc/samba/smb.conf文件的配置了,那么如何找出配置文件呢?因为我们总是需要修改配置文件啊!这样做吧:
[email protected]~]# rpm -qc samba samba-common
/etc/logrotate.d/samba
/etc/pam.d/samba
/etc/samba/smbusers
/etc/samba/lmhosIT
/etc/samba/smb.conf //很明显这个就是配置文件了
/etc/sysconfig/samba
一般情况下,公司或企业主要分三种情况,即:
1、公共匿名类共享目录的配置(即匿名账户访问共同的目录或者文件);
A、配置文件:
[[email protected]~]# vi /etc/samba/smb.conf
在文件中添加或者修改相关代码:
workgroup= MYGROUP //定义工作组,也就是windows中的工作组概念
serverstring = Samba Server Version %v //定义Samba服务器的简要说明
netbiosname = MYSERVER //定义windows中显示出来的计算机名称
log file= /var/log/samba/log.%m //定义Samba用户的日志文件,%m代表客户端主机//Samba服务器会在指定的目录中为每个登陆主机建立不同的日志文件
security= share //共享级别,用户不需要账号和密码即可访问
[public] //设置针对的是共享目录个别的设置,只对当前的共享资源起作用
comment = Public Stuff //对共享目录的说明文件,自己可以定义说明信息
path = /share //用来指定共享的目录,必选项
public = yes //所有人可查看,等效于guest ok =yes
B、建立共享目录:
[[email protected]~]# cd ..
[[email protected]/]# mkdir share
[[email protected]/]# cd share
[[email protected]]# touch samba.txt
[[email protected]]# touch aa.txt
[[email protected]]# ls -ls
显示结果:
total 0
0-rw-r--r--. 1 root root 0 Mar 13 11:02 aa.txt
0 -rw-r--r--.1 root root 0 Mar 13 11:02 samba.txt
为/share目录给匿名用户授权为nobody权限:
[[email protected]/]# chown -R nobody:nobody share/
[[email protected]/]# ll /share/
total 0
-rw-r--r--.1 nobody nobody 0 Mar 13 11:02 aa.txt
-rw-r--r--.1 nobody nobody 0 Mar 13 11:02 samba.txt
C、重启smb服务:
[[email protected]/]# /etc/init.d/smb restart
Shuttingdown SMB services: [ OK ]
StartingSMB services: [ OK ]
[[email protected]/]# /etc/init.d/nmb restart
Shuttingdown NMB services: [FAILED]
StartingNMB services: [ OK ]
D、测试smb.conf配置是否正确:
[[email protected]]# testparm
显示结果
Load smbconfig files from /etc/samba/smb.conf
rlimit_max:increasing rlimit_max (1024) to minimum Windows limit (16384)
Processingsection "[homes]"
Processingsection "[printers]"
Processingsection "[public]"
Processingsection "[IT]"
Unknownparameter encountered: "valid user"
Ignoringunknown parameter "valid user"
Processingsection "[HR]"
Processingsection "[FM]"
Processingsection "[share]"
Loadedservices file OK.
Serverrole: ROLE_STANDALONE
Pressenter to see a dump of your service definitions
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
client signing = required
idmap config * : backend = tdb
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
print ok = Yes
browseable = No
[public]
comment = Public Stuff
path = /share
guest ok = Yes
[IT]
comment = IT
path = /IT
E、访问Samba服务器的共享文件:
E1:CentOS系统下测试:
[[email protected]~]# smbclient //*.*.*.*/public
Enterroot‘s password:
Anonymouslogin successful
Domain=[MYGROUP]OS=[Unix] Server=[Samba 3.6.23-45.el6_9]
smb:\> ls
. D 0 Sun Nov 12 03:30:29 2017
.. DR 0 Sun Nov 12 08:27:23 2017
aa.txt 0 Sun Nov 12 03:30:29 2017
samba.txt 0 Sun Nov 12 03:30:24 2017
61970 blocks of size 32768.46296 blocks available
smb:\>
在此输入 q 命令,退出访问。
E2:window 7系统下测试,结果如图:
从图中可以看出,公共目录共享成功。
2、按照权限对目录进行分组(即除公共共享目录外,各组访问各组的文件或目录,以技术部门IT为例);
A、添加IT部组和用户,并赋给用户密码:
[[email protected]~]# groupadd IT
[[email protected]~]# useradd -g IT zhangsan
[[email protected]~]# useradd -g IT lisi
设置lisi的密码:
[[email protected]~]# passwd lisi
显示结果:
Changingpassword for user lisi.
Newpassword:
在此输入密码:123456,回车:
BADPASSWORD: it is too short
BADPASSWORD: is too simple
Retypenew password:
再次输入密码:123456,回车:
passwd:all authentication tokens updated successfully.
设置zhangsan的密码:
[[email protected]~]# passwd zhangsan
显示结果:
Changingpassword for user zhangsan.
Newpassword:
在此输入密码:123456,回车:
BADPASSWORD: it is too short
BADPASSWORD: is too simple
Retypenew password:
再次输入密码:123456,回车:
passwd:all authentication tokens updated successfully.
B、在根目录下建立/IT 文件夹:
[[email protected]~]# cd /
[[email protected]/]# mkdir IT
[[email protected]/]# cd IT
[[email protected]]# touch IT.txt
[[email protected]]# ls -ls
total 0
0-rw-r--r-- 1 root root 0 Mar 13 18:17 IT.txt
C、将建立的两个帐户(lisi、zhangsan)添加到samba的账户中:
[[email protected]~]# smbpasswd -a zhangsan
New SMBpassword:
Retypenew SMB password:
Addeduser zhangsan.
[[email protected]~]# smbpasswd -a lisi
New SMBpassword:
Retypenew SMB password:
Addeduser lisi.
D、修改主配置文件如下:
[[email protected] ~]# vi /etc/samba/smb.conf
修改security:
security= user //共享级别,用户不需要账号和密码即可访问
添加信息:
[IT]
comment = IT
path = /IT
valid users = @IT
E、重新启动服务:
[[email protected]~]# service smb restart
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
[[email protected]~]# service nmb restart
关闭 NMB 服务:[确定]
启动 NMB 服务:[确定]
F、在window 7下测试:
打开我的电脑,在地址栏中输入\\*.*.*.*服务器地址,弹出用户登陆框:
输入用户名:lisi,密码:123456,登陆成功后,可以看到相应的目录,包括lisi自己的目录、匿名公共目录、lisi与zhangsan共享的非匿名目录。如下图所示:
3、共享目录下的不同目录进行分组。
需求:
3.1.在系统分区时单独分一个Company的区,在该区下有以下几个文件夹:HR、 FM和Share。在Share下又有以下几个文件夹:HR、FM和Tools。
3.2.各部门对应的文件夹由各部门自己管理,Tools文件夹由管理员维护。
3.3. HR管理员账号:hradmin;普通用户账号:hruser。FM管理员账号:fmadmin;普通用户账号:fmuser。
A、新建用户,并设置SMB账户密码:
添加用户:
[[email protected] ~]# useradd -s /sbin/nologinhradmin
[[email protected] ~]# useradd -g hradmin -s/sbin/nologin hruser
[[email protected] ~]# useradd -s /sbin/nologinfmadmin
[[email protected] ~]# useradd -g hradmin -s /sbin/nologinfmuser
[[email protected] ~]# useradd -s /sbin/nologin admin
设置密码:
[[email protected]~]# smbpasswd -a hradmin
New SMBpassword:
Retypenew SMB password:
Addeduser hradmin.
[[email protected]~]# smbpasswd -a hruser
New SMBpassword:
Retypenew SMB password:
Addeduser hruser.
[[email protected]~]# smbpasswd -a fmadmin
New SMBpassword:
Retypenew SMB password:
Addeduser fmadmin.
[[email protected]~]# smbpasswd -a fmuser
New SMBpassword:
Retypenew SMB password:
Addeduser fmuser.
[[email protected]~]# smbpasswd -a admin
New SMBpassword:
Retypenew SMB password:
Addeduser admin.
为了方便记忆,在配置的时候,统一设置为:123456。
B、新建目录:
[[email protected]~]# cd /
[[email protected]/]# mkdir company
[[email protected]/]# cd company
[[email protected]]# mkdir HR FM Share
[[email protected]]# cd Share
[[email protected]]# mkdir HR FM Tools
C、更改目录属性:
[[email protected]]# chown hradmin.hradmin HR
[[email protected]]# chown fmadmin.fmadmin FM
[[email protected]]# chown admin.admin Share
[[email protected]]# cd Share
[[email protected]]# chown hradmin.hradmin HR
[[email protected]]# chown fmadmin.fmadmin FM
[[email protected]]# chown admin.admin Tools
[[email protected]]# chmod 1775 HR FM
D、修改主配置文件如下:
security = user
passdbbackend = tdbsam
[HR]
comment = This is a directory of HR.
path = /company/HR/
public = no
adminusers = hradmin
validusers = @hradmin
writable = yes
createmask = 0750
directorymask = 0750
[FM]
comment = This is a directory of FM.
path = /company/FM/
public = no
adminusers = fmadmin
validusers = @fmadmin
writable = yes
createmask = 0750
directorymask = 0750
[share]
comment = This is a share directory.
path = /company/share/
public = no
validusers = admin,@hradmin,@fmadmin
writable = yes
createmask = 0755
directorymask = 0755
E、重新启动samba服务:
[[email protected]~]# service smb restart
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
[[email protected]~]# service nmb restart
关闭 NMB 服务:[确定]
启动 NMB 服务:[确定]
F、在window 7下测试:
打开我的电脑,在地址栏中输入\\*.*.*.*服务器地址,弹出用户登陆框:
在图中输入用户名:hradmin,密码:123456,可以看到相应的共享目录,如下图所示:
Windows下可以通过cmd命令net use查看连接信息:
通过net use * /delete 删除连接信息
测试完毕。
本文出自 “诺克” 博客,请务必保留此出处http://9840752.blog.51cto.com/9830752/1981102
以上是关于CentOS下SAMBA的搭建的主要内容,如果未能解决你的问题,请参考以下文章