SAMBA
Posted tanshouke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAMBA相关的知识,希望对你有一定的参考价值。
博主本人平和谦逊,热爱学习,读者阅读过程中发现错误的地方,请帮忙指出,感激不尽
SMB简介
FTP文件传输服务确实可以让主机之间的文件传输变得简单方便,但是FTP协议的本质是传输文件,而非共享文件,因此要想通过客户端直接在服务器上修改文件内容还是一件比较麻烦的事情。
1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。当时,Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以SMB是没有意义的字符而拒绝了申请。后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生(见图12-1)。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。
Samba服务程序中的参数以及作用
[global] |
|
#全局参数。 |
|
workgroup = MYGROUP |
#工作组名称 |
|
server string = Samba Server Version %v |
#服务器介绍信息,参数%v为显示SMB版本号 |
|
log file = /var/log/samba/log.%m |
#定义日志文件的存放位置与名称,参数%m为来访的主机名 |
|
max log size = 50 |
#定义日志文件的最大容量为50KB |
|
security = user |
#安全验证的方式,总共有4种 |
|
#share:来访主机无需验证口令;比较方便,但安全性很差 |
|
|
#user:需验证来访主机提供的口令后才可以访问;提升了安全性 |
|
|
#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户) |
|
|
#domain:使用域控制器进行身份验证 |
|
|
passdb backend = tdbsam |
#定义用户后台的类型,共有3种 |
|
#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码 |
|
|
#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户 |
|
|
#ldapsam:基于LDAP服务进行账户验证 |
|
|
load printers = yes |
#设置在Samba服务启动时是否共享打印机设备 |
|
cups options = raw |
#打印机的选项 |
[homes] |
|
#共享参数 |
|
comment = Home Directories |
#描述信息 |
|
browseable = no |
#指定共享信息是否在“网上邻居”中可见 |
|
writable = yes |
#定义是否可以执行写入操作,与“read only”相反 |
[printers] |
|
#打印机共享参数 |
|
comment = All Printers |
|
|
path = /var/spool/samba |
#共享文件的实际路径(重要)。 |
|
browseable = no |
|
|
guest ok = no |
#是否所有人可见,等同于"public"参数。 |
|
writable = no |
|
|
printable = yes |
pdbedit命令用于管理SMB服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。pdbedit命令中使用的参数以及作用如下表所示
用于pdbedit命令的参数以及作用
参数 |
作用 |
-a 用户名 |
建立Samba用户 |
-x 用户名 |
删除Samba用户 |
-L |
列出用户列表 |
-Lv |
列出用户详细信息的列表 |
1.1.服务器安装软件
yum install samba samba-client -y
1.2.备份
cp -a smb.conf smb.conf.bak
1.3.去注释
cat smb.conf.bak |grep -v ‘^#‘ | grep -v ‘^;‘>smb.conf
1.4.服务器配置
vim /etc/samba/smb.conf 修改如下: [global] workgroup = workgroup .... [samba_test] comment = welcome to the sambaservier path = /tansk_practice_samba writable = yes public = oes browseable = yes
1.5.创建共享文件
mkdir /tansk_practice_samba/ -p chmod 777 /tansk_practice_samba/
1.6.创建smb用户
useradd tansk echo ‘123456‘|passwd --stdin tansk smbpasswd -a tansk pdbedit -Lv tansk
1.7.启动服务
chkconfig smb on
chkconfig nmb on
service nmb restart
service smb restart
1.8.防火墙规则
iptables -I INPUT 1 -p udp --dport 137:138 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 139 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 445 -j ACCEPT service iptables save service iptables restart
2客户机设置
2.1.安装服务
yum install -y samba-client autofs
2.2.Linux测试验证
smbclient -L //192.168.247.59 -U tansk
2.3.Linux登录smb
smbclient //192.168.247.59/samba_test -U tansk
2.4.Windows登录验证
2.5.如果报错如下,则需要关闭SELINUX
3.设置自动挂载(两种方法只能选择一种进行)
3.1.方法一(fstab)
yum -y install cifs-utils mkdir -p /cc
创建密码文件:
mkdir /secure/ -p
vim /secure/sherlock.passwd
输入:
username=tansk
password=123456
挂载验证:
mount -t cifs -o credentials=/secure/sherlock.passwd //192.168.247.59/samba_test /cc
cd /cc
ls
设置自动挂载(fstab)
vim /etc/fstab 输入: //192.168.247.59/samba_test /cc cifs defaults,credentials=/secure/sherlock.passwd 0 0 mount -a cd /cc ls
3.2.设置方法二(autofs)
cp -a /etc/auto.misc /etc/auto.aa vim /etc/auto.master 输入: /cc /etc/auto.aa vim /etc/auto.aa 输入: smb -fstype=cifs,credentials=/secure/sherlock.passwd ://192.168.247.59/samba_test 启动服务验证: service autofs restart cd /cc/smb/ ls
以上是关于SAMBA的主要内容,如果未能解决你的问题,请参考以下文章