一.关于samba的介绍linux
1.Samba服务器的常见应用ios
(1)能够提供用户登陆samba主机时进行身份验证。数据库
(2)实现类unix机器与windows机器的文件共享。vim
2.Samba使用的协议windows
(1)NetBIOS over TCP/IP : 最先IBM开发NETBIOS的目的仅是要让局域网内少数计算机进行网络链接的一个通讯协议而已。而samba最先发展时,是想要让linux系统能够加入windows的系统当中来,共享彼此的文件数据,因此固然samba就架构在NetBIOS之上而发展起来,可是NetBIOS没法跨路由,把NetBIOS实如今TCP/IP之上就能够跨路由了服务器
3. Samba使用的服务网络
smbd:这个服务主要的功能就是用来管理samba主机共享目录,文件与打印机信息等架构
nmbd:它是用来管理群主和NetBIOS Name解析的tcp
smb:tcp 139 445 处理samba的数据,实现共享ide
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
[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客户端测试
客户端查看服务器有哪些共享信息:
挂载使用:
[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端测试:
(5)客户端实现开机自动挂载
[root@tx2 ~]# vim /etc/fstab
三.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
用户名和密码都不用输入,直接回车就能够了
(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
测试:
Permission denied
例@2
sa1用户能够读写,其余的用户只读
read only = yes
write list = sa1
例@3
sa1用户能够读写,sa2用户能够读,其余的用户不能够访问
valid users = sa1 sa2
write list = sa1
这里就不作测试了,用户的权限能够本身定义,另外要注意得和实际的权限相符!