Samba介绍及配置

一、Samba是Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。samba与NFS一样,也是在网络中实现文件共享的一种实现但NFS不支持windows平台,而samba是能够在任何支持SMB协议的主机之间共享文件的一种实现,包括windows

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

2.SMB协议是C/S型协议,客户机通过该协议可以访问服务器上 的共享文件系统,打印机及其他资源。

3.SMB监听的端口:

TCP

UDP

139

137

445

138

 

 

4.samba用户

账号

密码

都是系统用户

samba服务自有密码文件

/etc/passwd

通过smbpasswd -a USERNAME命令设置

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

-a Sys_User //添加系统用户为samba用户并设置密码

-d //禁用用户账号

-e //启用用户账号

-x //删除用户账号

 

(2)tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。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用户账号。

 

5.samba安全级别

安全级别

作用

share

                              基于匿名的访问

user

基于本地的验证

server

另一台指定的服务器对用户身份进行认证

domain

由域控进行身份验证

 

6..常见配置文件的参数:

参数作用

作用

workgroup

表示设置工作组名称

server string

表示描述samba服务器

security

表示设置安全级别,其值可为share user server domain

passdb backend

表示设置共享账户文件类型,其值可为tdbsam(tdb数据库文件)ldapsam(LDAP目录认证) smbpasswd (兼容旧版本sambda密码文件)

comment

表示设置对应共享目录的注释,说明信息,及文件名

browseable

表示设置共享是否可见

writable

表示设置目录是否可写

path

表示设置共享目录的路径

guest ok

表示设置是否所有人均可访问共享目录

public

表示设置是否允许匿名用户访问

write list

表示设置允许写的用户和组,组要用@表示,例如 write list = root,@root

valid users

设置可以访问的用户和组,例如 valid users = root,@root

hosts deny

设置拒绝哪台主机访问,例如 hosts deny = 192.168.169.10

hosts allow

设置允许哪台主机访问,例如 hosts allow = 192.168.169.10

printable

表示是否为打印机

read  only

只读

directory mask = 0755  

//创建目录的权限掩码

create mask = 0644

//创建文件的权限掩码

available = yes

# 设置该共享目录是否可用

 

7.samba进程:

进程

对应

nmbd

对应netbios

smbd

对应cifs协议

winbindd+ldap

对应Windows AD活动目录

关闭samba端口 samba使用的端口_关闭samba端口

 

 

 

 

 

 

 

7.1 samba 服务器的主要程序

关闭samba端口 samba使用的端口_服务器_02

 

8.安装以及配置smb服务

关闭samba端口 samba使用的端口_服务器_03

 

 

  1. 公共匿名共享目录的配置

1.修改/etc/samba/smb.conf文件

security = share     共享级别,用户不许要密码和账户即可访问

[share]       //建立共享目录模块

comment = share Stuff       //对共享目录说明,可自定义

path = /share        //指定共享目录的路径

public = yes              //所有人可查看,等效于guest ok =yes

writable = yes      //有可写权限

2.新建share 目录,并设置属组为nobody

      3.重启smb服务:/etc/init.d/smb  restart

测试smb.conf 是否正确:testparm.

  1. 设置用户访问共享
  2. 新建账户,并且将账户添加到samba账户中

useradd    lile

passwd   123456  用户登录主机的密码

smbpasswd  -a  lile  将用户添加到samba账户中,设置lile用户smb密码,此密码与主机登录密码不相同。

  1. 修改主配置文件

 security = user     //修改共享级别为用户访问

hosts allow = 127.  172.172.0   //只允许127.0.0.0与172.172.0.0网段主机访问

[lile]      //共享目录名称

comment = lile share  

path = /share   //共享目录路径

public = no    //不公开,受限浏览

writable = yes    //共享目录可写

directory mask = 0755   //创建目录的权限掩码

create mask = 0644    //创建文件的权限掩码

valid users = renli,root   //被许可访问该共享目录的用户账号

write list = renli,root    //允许写入的用户账号,注意如果不能写入就是系统共享文件权限不足,修改即可。

 

3.测试smb.conf 是否正确:testparm.

 

4.新建share 目录,并设置属组为nobody

 

  1. 重启smb服务:/etc/init.d/smb  restart

 

(3)用户的映射

1.编辑 /etc/samba/smbusers 文件

vim /etc/samba/smbusers

renli = u1 u2 u3   //renli 是映射的账户,u1,u2,u3是被映射的用户

  1. 修改/etc/samba/smb.conf ,添加以下信息

username  map  = /etc/samba/smbusers

 

 

 

smbclient 命令:

关闭samba端口 samba使用的端口_用户账号_04

客户端的操作

方法一:登录

smbclient -L 192.168.169.10 -U lile(用户名)  #查看共享目录资源

smbclient  -U  lile  //192.168.126.137/mytool

 

方法二:在客户端挂载共享目录

关闭samba端口 samba使用的端口_关闭samba端口_05