一.关于samba的介绍

1.Samba服务器的常见应用

(1)可以提供用户登录samba主机时进行身份验证。

(2)实现类unix机器与windows机器的文件共享。

2.Samba使用的协议

 (1)NetBIOS over TCP/IP : 最早IBM开发NETBIOS的目的仅是要让局域网内少数计算机进行网络连接的一个通信协议而已。而samba最早发展时,是想要让linux系统可以加入windows的系统当中来,共享彼此的文件数据,所以当然samba就架构在NetBIOS之上而发展起来,但是NetBIOS无法跨路由,把NetBIOS实现在TCP/IP之上就可以跨路由了

3. Samba使用的服务

smbd:这个服务主要的功能就是用来管理samba主机共享目录,文件与打印机信息等

nmbd:它是用来管理群主和NetBIOS Name解析的

smb:tcp 139 445   处理samba的数据,实现共享

nmb:udp 137 138   能够实现通过FQDN的方式访问samba共享


4. Samba 服务及配置文件相关介绍

(1)Samba

这个软件主要包括了samba的主要服务(smbd,nmbd),samba的文件,与samba相关logrotate设置文件,及默认选项等

(2)samba-common

这个软件提供了samba的主要配置文件(smb.conf)

(3)samba-Client

这个软件提供了当linux作为samba Client端时,所需要的工作指令

(4)# vim /etc/samba/smb.conf

57 [global]     //全局配置的访问控制

74         workgroup = MYGROUP  ///工作组的名称

75         server string = Samba Server Version %v //主机的简易说明

77 ;       netbios name = MYSERVER       //主机的NetBIOS名称

79 ;       interfaces = lo eth0 192.168.12.2/24192.168.13.2/24

// 监听的网卡,可以是网卡的名字,也可以是网段

80 ;       hosts allow = 127. 192.168.12. 192.168.13.   //允许哪些网段

101         security = user    //samba的共享的验证方式:share:客户端使用samba共享不需要  密码,user :客户端使用samba共享需要输入用户名和密码

102         passdb backend = tdbsam

//   tdbsam:/etc/samba/下生成一个数据库文件,用来保存创建的samba用户和密码

248 [homes]       // 共享名,每个samba用户,都有权力去访问自己的家目录,samba用户的前身,必须是系统的普通用户

249         comment = Home Directories   //描述信息

250         browseable = no      //目录浏览权限

251         writable = yes    //是否可写(创建文件或目录)

252 ;       valid users = %S

253 ;       valid users = MYDOMAIN\%S

用户的个人设置:

282 ;       [public]               //共享名

283 ;       comment = Public Stuff   //描述信息


284 ;       path = /home/samba       //真正的共享目录位置

285 ;       public = yes     //是否可以匿名访问


286 ;       writable = yes    //可以访问的用户是否有写入权限,要与文件权限配合使用


287 ;       printable = no   //如果yes 那么这个目录就被认为是一个打印机,所以一般我们设置成 printables = no


288 ;       write list = +staff     //允许写入权限的用户列表


二.Samba的基本配置

(1)安装

[root@tx1 ~]# yum install samba -y

简单定义一个属于自己的共享目录

[root@tx1 ~]# vim /etc/samba/smb.conf

164225780.png


[root@tx1 ~]# useradd t2

[root@tx1 samba]# smbpasswd -a t2

New SMB password:

Retype new SMB password:

Added user t2.

[root@tx1 samba]# /etc/init.d/smb start

Starting SMB services:                                     [  OK  ]

Starting NMB services:                                     [  OK  ]


(2)设置共享路径

[root@tx1 samba]# mkdir /tmp/samba -pv

mkdir: created directory `/tmp/samba'

[root@tx1 samba]# chmod 1757 /tmp/samba

注意权限设置好哦!

[root@tx1 samba]# /etc/init.d/smb restart

(3)linux客户端测试

客户端查看服务器有哪些共享信息:

164359538.jpg

挂载使用:

[root@tx2 ~]# mount //192.168.8.70/public /mnt -o user=t2

Password:

或者

[root@tx2 ~]# mount //192.168.8.70/public /mnt -o user=t2,password=123

[root@tx2 ~]# cd /mnt/

[root@tx2 mnt]# touch tx

返回到服务端查看:

[root@tx1 samba]# cd /tmp/samba/

[root@tx1 samba]# ls

tx

(4)Windos端测试:

164435650.jpg

(5)客户端实现开机自动挂载

[root@tx2 ~]# vim /etc/fstab

164537740.png

三.Samba的访问控制

(1)ip方式

[root@tx1 samba]# vim /etc/samba/smb.conf

79 ;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24

80 ;       hosts allow = 127. 192.168.12. 192.168.13.

打开这两行的注释,把允许的网段或ip写进去就行了。


(2)匿名用户

[root@tx1 samba]# vim /etc/samba/smb.conf

101         security = share

289  [public]

290  comment = Public Stuff

291  path = /tmp/samba

292  writable = yes

293  public = yes   //这个地方不要忘了哦!


[root@tx1 samba]# /etc/init.d/smb restart

用户名和密码都不用输入,直接回车就可以了

164708325.jpg


(3)服务器方面控制用户的读写

valid users =   有效的用户

valid users = user1 user(用户) @user3(组)

writable = yes/no     可写/不可写

write list = user1user2 @user3可写的用户/组的列表  

read only = yes/no    可读/不可读

read list = user1 user2 user3 可读的用户列表


例:@1

user1只读,其他的用户都是可以读写的

[root@tx1 samba]# vim /etc/samba/smb.conf

101 security = user

289 [share]

290 comment = my samba

291 path = /tmp/samba

292 writable = yes

293 read list = user1

[root@tx1 samba]# vim /etc/samba/smb.conf

[root@tx1 samba]# useradd user1

[root@tx1 samba]# cd /etc/samba/

[root@tx1 samba]# smbpasswd -a user1

New SMB password:

Retype new SMB password:

Added user user1.

[root@tx1 samba]# /etc/init.d/smb restart

测试:

164841998.png

Permission denied


例@2

sa1用户可以读写,其他的用户只读

read only = yes

write list = sa1


例@3

sa1用户可以读写,sa2用户可以读,其他的用户不可以访问

valid users = sa1 sa2

write list = sa1


这里就不做测试了,用户的权限可以自己定义,另外要注意得和实际的权限相符!