samba配置

1、什么是samba

Samba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到。

是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。  

 

2. 安装配置samba

1)安装

   yum install -y samba samba-client 

 

2配置文件解说: 

     配置文件位置:/etc/samba/smb.conf

[global]定义全局的配置

workgroup用来定义工作组,相信如果您安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的MYGROUP改成WORKGROUP(windows默认的工作组名字)。

Server stringSamba的名称

security = user #这里指定samba的安全等级。关于安全等级有四种:

share:用户不需要账户及密码即可登录samba服务器

user:由提供服务的samba服务器负责检查账户及密码(默认)

server:检查账户及密码的工作由另一台windows或samba服务器负责

domain:指定windows域控制服务器来验证用户的账户及密码。

passdb backend = tdbsam # passdb backend(用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam.

 

 3. samba配置文件

关于smbpasswd 参考文章:

  http://blog.yam.com/gavint/article/27397099

  http://www.cnblogs.com/linuxbo/p/4290996.html

smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,需要手工创建该文件。

cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd

tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd -a :创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。(注意,使用smbpasswd -a  username 这个同样也是tdbsam,并非上面的那种)


pdbedit参数很多,列出几个主要的:

pdbedit -a username:新建Samba账户。

pdbedit -x username:删除Samba账户。

pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。

pdbedit -Lv:列出Samba用户列表详细信息。

pdbedit -c “[D]” -u username:暂停该Samba用户账号。

pdbedit -c “[]” -u username:恢复该Samba用户账号。

ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 “passdb backend = ldapsam:ldap://LDAP Server”

 

load printers 和 cups options 两个参数用来设置打印机相关。

除了这些参数外,还有几个参数需要你了解:

netbios name = MYSERVER # 设置出现在网上邻居中的主机名

hosts allow = 127. 192.168.12. 192.168.13. 172.16.# 用来设置允许的主机,如果在前面加 ”;” 则表示允许所有主机

log file = /var/log/samba/%m.log #定义samba的日志,这里的%m是上面的netbios name

max log size = 50 # 指定日志的最大容量,单位是K

[homes]该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。

[printers] 该部分内容设置打印机共享。

 

4. samba实践一

要求共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读 

1)编辑要/etc/samba/smb.conf文件,把[global]部分 MYGROUP 改为WORKGROUP 

2)把security = user  改为 security = share (就是所有人都可以访问)

 3)在配置文件 末尾处加入一下代码:

    

[share]

comment = share all

path = /tmp/samba   #共享samba这个目录

browseable = yes   

public = yes   #是否可浏览

writable = no    #不可写,只能浏览

 

 用井号(#)或者分号(;)注释掉homesprinters下的代码

4)创建samba目录

   [root@mysql ~]# mkdir /tmp/samba

  samba目下创建一个文本文件

  [root@mysql ~]# touch /tmp/samba/cheng.txt

5)给samba目录授权

[root@mysql ~]# chmod 777 /tmp/samba/

6)启动samba服务

[root@mysql ~]# /etc/init.d/smb start

7)测试,在Windows中访问

samba配置_第1张图片

5Linux访问Samba共享文件

 Linux系统访问需要安装客户端测试

    yum install -y samba-client

1)匿名访问格式

      smbclient //IP/共享名称 -U用户名

      匿名访问不需要加-U

[root@chenglinux ~]#smbclient //192.168.21.97/share
Enter root's password: #这里提示输入密码,不用管直接回车就可以
Domain=[WORKGROUP]
OS=[Unix] Server=[Samba 3.6.23-14.el6_6]
Server not using
user level security and no password supplied.
smb: \> ls
  .                                   D        0 
Sun Jun 28 10:45:00 2015
  ..                                  D        0 
Sun Jun 28 10:52:38 2015
  CT1AUF~P                                     0  Sun Jun 28 11:59:52 2015
  cheng.txt                                    0  Sun Jun 28 10:45:00 2015
 
40061blocks of size 524288. 33356 blocks available

2)在Linux系统下挂载samba

  需要安装cifs-utils

    yum install -y cifs-utils

 

 挂载

[root@chenglinux ~]#mount -t cifs //192.168.21.97/share /mnt/
Password: #这里提示输入密码,直接回车就可以了


是用df -h查看挂载状况

samba配置_第2张图片

6、实践二

     要求匿名访问,可读可写

   1  修改[share] 中的文件

       writable = no修改为 writable = yes

 

    2)  退出保存,然后在重启samba服务

     [root@mysql ~]# /etc/init.d/smb restart

   3)测试

samba配置_第3张图片

将以nobody的身份创建文件

 

7、实验三

  

要求共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读 

1)需要修改/etc/samba/smb.conf配置文件,部分内容修改成如下配置:

   修改内容如下:

[global]

workgroup = WORKGROUP

server string = Samba Server Version %v

security = user

passdb backend = tdbsam

load printers = yes

cups options = raw

 

2)把实验一末尾加上的代码可以注释掉,如果没有实验一呢就不用管

3)在配置文件末尾加上以下代码

    代码如下:

[myshare]

comment = share for users

path = /samba

browseable = yes

writable = yes

public = no

 

保存,退出重启samba服务

4)创建Samba目录

[root@mysql ~]# mkdir /samba

5)授权

[root@mysql ~]# chmod 777 /samba/

6)创建系统用户,需要注意的是创建的系统用户可以登录samba服务的共享

      创建系统用户ab

    [root@mysql ~]# useradd a

     [root@mysql ~]# useradd b

   

 7)添加用户aSamba账号。需要注意的是在[globa]中,“passwd backend = tdbsam,所以这里也要只是用

     pdbedit来增加用户

   

[root@mysql ~]#pdbedit -a a
new password: #这是是输入登录samba的密码,不是系统密码
retype new password:
Unix username:        a
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-741379161-325660159-305581886-1000
Primary Group SID:    S-1-5-21-741379161-325660159-305581886-513
Full Name:            
Home Directory:       \\mysql\a
HomeDir Drive:        
Logon Script:         
Profile Path:         \\mysql\a\profile
Domain:               MYSQL
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          三, 06 2月 2036 23:06:39 CST
Kickoff time:         三, 06 2月 2036 23:06:39 CST
Password last set:    日, 28 6月 2015 13:29:02 CST
Password can change:  日, 28 6月 2015 13:29:02 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

 

8)重启samba服务

[root@mysql ~]# /etc/init.d/smb restart

9)登录

  Linux系统:

[root@chenglinux ~]# smbclient //192.168.21.97/myshare -U a
Enter a's password: #这提示输入密码了
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-14.el6_6]
smb: \> ls
  .                                   D        0  Sun Jun 28 13:22:44 2015
  ..                                 DR        0  Sun Jun 28 13:22:44 2015
40061 blocks of size 524288. 33356 blocks available
smb: \>

 

  Windows上测试也成功

samba配置_第4张图片


          笔记有错误的地方还请大神指正,小白会继续修改