如来神掌第一式第十九招----Samba 详解

###############################################################################
# Name : Mahavairocana                                                                                                                                           
# Author : Mahavairocana                                                                                                                                         
# QQ : 10353512                                                                                                                                                    
# WeChat : shenlan-qianlan                                                                                                                                      
# Blog : http://www.cnblogs.com/Mahavairocana/                                                                                                       
# Description : You are welcome to reprint, or hyperlinks to indicate the                                                                        
#                    source of the article, as well as author information.                                                                                ###############################################################################

一、samba简介:(Server Messages Block,信息服务块)为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大方便。

两个主要进程:
1.nmbd :提供NETBIOS 名称解析的                         
2.smdb : 提供文件共享的。

由NETBIOS协议对于windows来讲监听TCP的139端口和UDP的137,138端口 ,所以nmbd在linux上模拟出了udp的137和138端口,以及tcp的139端口,smdb上模拟出 tcp的445端口。而SAMBA将在Linux上同时监听这4个端口。

二、Samba客户端配置

首先先记录下在linux客户端怎么用命令访问windows或者linux的共享文件夹

第一步 smbclient -L //192.168.100.5 -U Mahavairocana (smbclient是命令 -L是列出服务器有哪些共享文件 -U后面跟着的是用户名)

第二步 输入密码后会看到服务器共享的文件夹,然后用命令 smbclient //192.168.100.5/资源共享 -U Mahavairocana 进入服务器,输入密码后会看到如下(我登陆的是windows的共享文件)

Password:
Domain=[DC] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]
smb: >

第三步 使用help可以查看命令使用方法,常用的有ls cd get put exit等

第四步 VISTA和WIN7访问要 \www.google.com obody 或者 \www.google.comguest 这样

第五步 WIN7如果还不能访问,修改注册表

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa

LmCompatibilityLevel  的值等于  1

第六步 windows上访问修改删除不会及时刷新

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

NoSimpleNetIDList   的值等于  1


-----------------------------------------------------------------------------------------------------------------

Samba服务器配置部分

第一步:

进入 /etc/samba 目录,备份下smb.conf,然后删除这个文件,自己重新建立一个,输入如下内容

[global]
workgroup = WORKGROUP
netbios name = www.test.com # 这里重点中的重点,这个名字最好和机器名一样,远程访问的时候就用这个名字
server string = C2 is samba server
security = share

load printers = no            #不加载打印机
disable spoolss = yes         #隐藏打印机
cups options = raw            #打印机类型

unix charset = utf8
dos charset =GBK
display charset = utf8
client lanman auth = yes
client plaintext auth = yes

hosts deny = 192.168.0.55 #阻止这个IP访问SMB


[Mahavairocana]
path = /var/Mahavairocana
writeable = yes
browseable = yes
guest ok = yes

简单解释下上面的内容 [global]全局配置,必须有。前3行都是显示说什么的,security 如果是share就是不用帐号密码,如果是user就是要验证的。

[Mahavairocana]这个是在客户端显示出来共享的目录,path 就是共享的路径了,guest ok 为yes就是不要身份验证。

 

第二步:

在 /var/目录建立个文件夹叫 Mahavairocana 用来做共享文件夹用

[root@localhost ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)

[root@localhost ~]# chown -R nobody:nobody /var/Mahavairocana

OK,然后重启SMB服务器 service smb restart 和 service nmb start 一个简单不用验证的共享服务器就搞定了。

---------------------------------------------------------------------------------------

 

第三步: 做一个需要帐号密码的共享服务器

1. 先用命令 useradd Mahavairocana -s /sbin/nologin(系统建立一个叫Mahavairocana的帐号且不能登陆系统)

2. 然后再用命令 smbpasswd -a Mahavairocana (用这个命令来添加一个SMB的帐户叫Mahavairocana)

3. chown Mahavairocana:Mahavairocana /var/Mahavairocana (让Mahavairocana帐户可以有权限使用/var/Mahavairocana这个目录)

4. 然后修改 /etc/samba/smb.conf 中:


[global]
workgroup = WORKGROUP                    // 用来指定你的机器上网络上所述的NT域名
netbios name = www.google.com             //主机名,用来访问用的地址,重要
server string = google is samba server      
guest account = Mahavairocana                    //如果希望建立一个账号,再次填入用户名,同时在 /etc/passwd 中加入这个账号,否则使用默认的'nobody'作为账号
security = user

// 这是samba服务器的安全等级。默认为user等级。samba 一共有4种安全等级。

1. share级,共享安全级,用户不需要输入账号和密码就可以登陆

2. user级, 用户安全级,用户需要账号和密码才能登陆

3. server级, 服务器安全级, 检查密码的工作可以指定另一台samba服务器完成

4. domain域安全级, 需要指定一台XP等服务器验证用户密码


unix charset = utf8
dos charset = GBK
display charset = utf8
client lanman auth = yes
client plaintext auth = yes

[Mahavairocana]
path = /var/Mahavairocana
writeable = yes
browseable = yes
guest ok = no                    //用户需要密码,yes为不需要密码(需要配合上面的 security等级)
comment = Mahavairocana
valid users = Mahavairocana              //可访问的用户
public = no                      //匿名用户看不到
create mask = 0777


主要就是把security改成user guest ok改成no

5. 最后 service smb restart 和 service nmb start 这样就做了个带命令访问的共享文件服务器了

6. 如果开了防火墙打开  

 iptables -A INPUT -p tcp --dport 139 -j ACCEPT
 iptables -A INPUT -p tcp --dport 445 -j ACCEPT
 iptables -A INPUT -p udp --dport 137 -j ACCEPT
 iptables -A INPUT -p udp --dport 138 -j ACCEPT
 iptables -A INPUT -i lo -j ACCEPT
原文地址:https://www.cnblogs.com/Mahavairocana/p/8290059.html