Linux下如何搭建SAMBA服务器
1、相关的文件
samba-common samba服务器的主文件
samba 服务器端的软件
samba-client 客户端的软件
redhat-config-samba 图形界面的配置文件
samba-swat web配置工具
2、步骤
1)安装SAMBA服务器
(1)检测是否安装samba
#rpm -qa | grep samba
(2)安装:将第一张光盘放入光驱
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#ls samba
#rpm -ivh samba-common-227a-790i386rpm
#rpm -ivh samba-227a-790i386rpm
#rpm -ivh samba-client-227a-790i386rpm
#cd /
#umount /mnt/cdrom
#eject
2)设置samba的密码文件
(1)成批用户密码文件的生成
#cat /etc/passwd | mksmbpasswdsh > /etc/samba/smbpasswd
(2)删除一些无用的shell帐户
#vi /etc/samba/smbpasswd
从1到9。
(3)设置目录和文件的权限
#chown rootroot /etc/samba/smbpasswd
#chmod 500 /etc/samba
#chmod 600 /etc/samba/smbpasswd
#ll -d /etc/samba
(4)单个用户设置samba密码
#useradd wujianan
#passwd wujianan
#smbpasswd -a wujianan
3)启动samba服务器
#service smb start
#pstree | grep mbd
#smbclient -L localhost或者IP地址
4)配置samba的共享
#vi /etc/samba/smbconf
[global]
workgroup = workgroup
server string = samba server
;hosts allow = 1921681 1921682 127
printcap = /etc/printcap
load prints = yes
printing = cups
;guest account = pcguest
log file = /var/log/samba/%mlog
max log size = 0
安全选项
security = user(share)
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
;interfaces = 192168122/24 192168132/24
dns proxy = no
设置每个用户主目录共享
[homes]
comment = Home Directries
browseable = no 不允许浏览共享文件夹
writeable = yes 允许写入
valid users = %s
create mode = 0664
directry mode = 0775
[printers]
comment = All prints
path = /var/spool/samba
browseable = no
printable = yes
[doc]
comment = doc
path = /home/doc
browseable = no
writeable = no或 read only = yes
guest ok = yes
示例:
要求:创建一个共享目录,所有用户都可访问,权限为只读。
#vi /etc/samba/smbconf
workgroup = workgroup
server string = samba server
netbios name = RH9
dos charset = cp936
unix charset = cp936
secrity = share
[read]
comment = read
path = /home/read
public = yes
guest ok = yes
read only = yes
保存退出
#mkdir /home/read
#service iptables stop
#service smb start
#testparm
\\ip地址
创建一个可写的目录,允许所有用户可写入。
[write]
comment = write
path = /home/write
public = yes
guest ok = yes
writeable = yes
保存退出
#mkdir /home/write
#chmod 777 /home/write
#service iptables stop
#service smb restart
为指定的用户和组访问samba服务器
#useradd mehost
#passwd wujianan
#smbpasswd -a wujianan
#mkdir /var/samba/wujianan
#chown stu1stu1 /var/samba/wujianan
#vi /etc/samba/smbconf
security = user
[wujianan]
comment = wujianan
path = /var/samba/wujianan
valid users = wujianan
public = yes
writeable = yes
保存退出
#service smb restart
最简单的**服务器的配置
#vi /etc/samba/smbconf
workgroup = workgroup
server string = movies server
guest account = nobody
security = share
client code page = cp936
wins support = yes
[movies]
comment = movies
browseable = yes
writeable = no
path = /movies
guest ok = yes
read only = yes
保存退出
#mkdir /movies
#useradd admin -d movies
#passwd admin
#vi /etc/passwd
admin:x:0:500::/movies:/bin/bash
保存退出
#ntsysv
选择smb和vsftp项
#service smb start
#service vsftpd start
#service iptables stop
许多用户还不知道win7系统如何配置samba服务器?samba服务能提供文件共享服务,它的优点在于很方面在windows和linux之间进行文件共享服务。如何配置samba服务器呢?这个软件配置起来也不难,使用也非常简单。接下去我们一起看下配置方法。
具体方法如下:
一般你装系统的时候会默认安装samba,如果没有安装,只需要运行这个命令安装(CentOS):
“yuminstall-ysambasamba-client”
Samba的配置文件为/etc/samba/smbconf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用”#”或者”;”注视掉了。先看一下未被注释掉的部分:
[global]
workgroup=MYGROUP
serverstring=SambaServerVersion%v
security=user
passdbbackend=tdbsam
loadprinters=yes
cupsoptions=raw
[homes]
comment=HomeDirectories
browseable=no
writable=yes
[printers]
comment=AllPrinters
path=/var/spool/samba
browseable=no
guestok=no
writable=no
printable=yes
主要有以上三个部分:[global],[homes],[printers]。
[global]定义全局的配置,”workgroup”用来定义工作组,相信如果你安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的”MYGROUP”改成”WORKGROUP”(windows默认的工作组名字)。
security=user#这里指定samba的安全等级。关于安全等级有四种:
share:用户不需要账户及密码即可登录samba服务器
user:由提供服务的samba服务器负责检查账户及密码(默认)
server:检查账户及密码的工作由另一台windows或samba服务器负责
domain:指定windows域控制服务器来验证用户的账户及密码。
passdbbackend=tdbsam#passdbbackend(用户后台),samba有三种用户后台:smbpasswd,tdbsam和ldapsam
smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。
tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdbtdb,在/etc/samba中。passdbtdb用户数据库可使用smbpasswd_a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:
pdbedit_ausername:新建Samba账户。
pdbedit_xusername:删除Samba账户。
pdbedit_L:列出Samba用户列表,读取passdbtdb数据库文件。
pdbedit_Lv:列出Samba用户列表详细信息。
pdbedit_c“[D]”_uusername:暂停该Samba用户账号。
pdbedit_c“[]”_uusername:恢复该Samba用户账号。
ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdbbackend=ldapsam:ldap://LDAPServer”
loadprinters和cupsoptions两个参数用来设置打印机相关。
除了这些参数外,还有几个参数需要你了解:
netbiosname=MYSERVER#设置出现在“网上邻居”中的主机名
hostsallow=1271921681219216813#用来设置允许的主机,如果在前面加”;”则表示允许所有主机
logfile=/var/log/samba/%mlog#定义samba的日志,这里的%m是上面的netbiosname
maxlogsize=50#指定日志的最大容量,单位是K
[homes]该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。
[printers]该部分内容设置打印机共享。
samba实践
注意:在试验之前,请先检测selinux是否关闭,否则可能会试验不成功。关于如何关闭selinux请查看第十五章linux系统日常管理的“linux的防火墙”部分
1共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读。
打开samba的配置文件/etc/samba/smbconf
[global]部分
把”MYGROUP”改成”WORKGROUP”
把”security=user”修改为“security=share”
然后在文件的最末尾处加入以下内容:
[share]
comment=shareall
path=/tmp/samba
browseable=yes
public=yes
writable=no
mkdir/tmp/samba
chmod777/tmp/samba
启动samba服务
/etc/initd/smbstart
测试:
首先测试你配置的smbconf是否正确,用下面的命令
testparm
如果没有错误,则在你的windows机器上的浏览器中输入file://IP/share看是否能访问
2共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写
打开samba的配置文件/etc/samba/smbconf
[global]部分内容如下:
[global]
workgroup=WORKGROUP
serverstring=SambaServerVersion%v
security=user
passdbbackend=tdbsam
loadprinters=yes
cupsoptions=raw
然后加入以下内容:
[myshare]
comment=shareforusers
path=/samba
browseable=yes
writable=yes
public=no
保存配置文件,创建目录:
mkdir/samba
chmod777/samba
然后添加用户。因为在[globa]中”passdbbackend=tdbsam”,所以要使用”pdbedit”来增加用户,注意添加的用户必须在系统中存在。
useradduser1user2
pdbedit-auser1#添加user1账号,并定义其密码
pdbedit-auser2
pdbedit-L#列出所有的账号
测试:
打开IE浏览器输入file://IP/myshare/然后输入用户名和密码
3使用linux访问samba服务器
Samba服务在linux下同样可以访问。前提是你的linux安装了samba-client软件包。安装完后就可以使用smbclient命令了。
smbclient//IP/共享名-U用户名
如:[root@localhost]#smbclient//100467/myshare/-Uuser1
Password:
Domain=[LOCALHOST]OS=[Unix]Server=[Samba3033-329el5_62]
smb:\
出现如上所示的界面。可以打一个””列出所有可以使用的命令。常用的有cd,ls,rm,pwd,tar,mkdir,chown,get,put等等,使用help+命令可以打印该命令如何使用,其中get是下载,put是上传。
另外的方式就是通过mount挂载了:
如:
mount-tcifs//100467/myshare/mnt-ousername=user1,password=123456
格式就是这样,要指定-tcifs//IP/共享名本地挂载点-o后面跟username和password
挂载完后就可以像使用本地的目录一样使用共享的目录了。
上述就是win7系统配置samba服务器的方法了,感兴趣的用户可以一起来设置下。
你使用的是什么发行版?是centos么?如果是的话就跟随以下我的方法来设置吧。
samba这款软件应用确实非常广泛,同时也为linux和windows之间文件传输提供了一个非常轻松的方式,同时它的安装方法也是非常简单的,我的方法适用于centos68及其以前的系统。
1首先,看看系统里面有没有装samba,这是最关键的一步,不然接下来可能会出问题。默认情况下,centos系统在默认安装中应该已经安装了Samba服务包的一部分 。
rpm -qa | grep samba //默认情况下可以查询到两个已经存在的包:samba-client-3033-37el5
samba-common-3033-37el5
2上网找找samba主rpm包。
不过我这里先前就已经找过一个包,在服务器上执行wget下载就好了。
[root@chunming-pc`]# wget ftp://195220108108/linux/fedora-secondary/releases/23/Everything/s390/os/Packages/s/samba-430-01rc4fc23s390rpm然后下载完成之后使用以下命令安装即可(例如我这里下载的是samba-430-01rc4fc23s390rpm)
[root@chunming-pc`]# rpm -ivh samba-430-01rc4fc23s390rpm然后安装完成之后就是需要修改配置文件了。
找到/etc/samba/smbconf,打开它,然后把这段写入smbconf中
[global]workgroup = LinuxSir
netbios name = LinuxSir05
server string = Linux Samba Server TestServer
security = share
[linuxsir]
path = /opt/linuxsir
writeable = yes
browseable = yes
guest ok = yes
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是Windows中显示的工作组;在这里我设置的是LINUXSIR (用大写);
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
[linuxsir] 这个在Windows中显示出来是共享的目录;
那么path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,在工作组下能看到共享文件夹。如果不想显示出来,那就设置为 browseable=no,guest ok 匿名用户以guest身份是登录;
之后就是需要建立相应目录并授权:
[root@chunming-pc ~]# mkdir -p /opt/linuxsir创建之后,会发现所属用户和组是root,只需要chown 将对应的目录所属改成samba这个软件的用户就可以了。
然后到现在配置就完成了,把服务起来iptables开放端口就可以给外网访问了。
Samba是在Linux及Unix上实现SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。这里我们只介绍服务器程序。
我们首先介绍一些SMB协议的情况。SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务。NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议。这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。因此,为了让Windows和Unix/Linux计算机相集成,最好的办法就是在Unix/Linux计算机中安装支持SMB协议的软件。这样使用Windows的客户端不需要更改设置,就能像使用Windows NT或Windows 2000服务器一样,使用Unix/Linux计算机上的共享资源了。Samba使SMB协议运行在NetBIOS协议上,并且使用Windows的NetBEUI协议让Unix/Linux服务器可以在Windows的网络邻居上被访问到。
Samba的服务器程序可以实现以下主要功能:
◆ 文件及打印共享;
◆ 计算机名与IP的解悉;
◆ WINS服务的支持;
◆ 用户权限设置(如果配合Linux 的Quota还可以实现用户磁盘空间配额)
1 介绍
如果某一个单位,他们的桌面计算机必须使用M$ Windows平台的话,那么他们很可能不可避免的需要Windows服务器产品,比如Windows NT Server或者Windows 2000 Server,甚至Windows 2000 Advanced Server。要知道,要合法的拥有这些服务器的软件(按照微软的所谓许可协议购买连接数)的话,再加上昂贵的硬件费用,可并不是一比小费用。如果有一个途径,可以让你在普通硬件的基础上,免费实现Windows NT/2000服务器的功能,你说,何乐而不为呢?
这就是桑巴,一个免费的,强大的,灵活的,轻便的,samba。
2 背景介绍
我的有一台安装了win2000的机器,叫做notepad,它属于workgroup这个工作组。
我的Debian GNU/Linux安装在一台普通的台式计算机上,机器名字叫debian,域名叫testcom。
3 安装
31 软件版本
由于我们用的sid的sourceslist,所以得到的是2ArrayArray版+30Alpha版的samba。其配置方法与以前版本有些不同。
32 安装
安装过程非常简单:
apt-get install samba
系统会问你,请参考这些答案:
用debconf配置samba吗?Yes。
输入工作组名,或者域名:workgroup。
使用口令加密?Yes。
以什么方式运行samba?我们选择默认的daemons方式,让他在后台监听。
创建samba口令库?Yes。
4 小测试
你也许不相信,但是现在,你已经可以在Windows的网上邻居里面看到这台名字叫Debian的Linux主机了!
找到网上邻居的workgroup组,你会发现她确实已经在那里了。怎么样,振奋吧!
不过,你会发现,无论你输入什么用户名和口令,都无法通过验证。那是因为,我们还没有告诉samba,验证哪些用户和口令。
5 快速入门
Samba只有一个配置文件!
那就是/etc/samba/smbconf。
下面这个只有几行的smbconf,就可以让samba为我们工作!
[global]
log file = /var/log/samba/log%m
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
6 配置
61 检查当前配置
我们的samba现在已经运行了,那么,它正在提供哪些服务呢?如果打开/etc/samba/smbconf,你可能会觉得内容太多,看不过来了;那好,我们有个命令可以用:testparm。这个命令,可以让我们检查smbconf的配置是否正确,而且还可以列出一个实际上有效的smbconf的内容:
# testparm
通过这个命令,你看到了吧,实际上发挥作用的配置,就是那么几行。
62 写一个最小的smbconf
实际上,为了做实验,我们可以写一个更小的smbconf,就向上一小节里面提到的那样。那个配置文件,可以让samba把/tmp共享,并且可以往里写文件。
好,我们不妨就采用上面这个文件吧,请你先将/etc/samba/smbconf改名,比如改为smbconfbackup,然后把上面的内容抄下来,保存为新的/etc/samba/smbconf。
记住,要是修改后的smbconf生效,需要重新启动samba:
# /etc/initd/samba restart
63 创建用户
在我们创建用户之前,没有人能够访问samba服务器,就是说,在windows平台上,无论用什么用户名和口令,都无法访问网上邻居里面的debian这台机器。
我们需要在/etc/samba/目录下面,生成一个文件,名字叫:smbpasswd:
# touch /etc/samba/smbpasswd
然后,使用smbpasswd命令,添加samba用户:
# smbpasswd -a kanaka
New SMB password:
Retype new SMB password:
这时,kanaka就被写进了/etc/samba/smbpasswd文件,kanaka就可以从windows访问samba了。
7 测试
在你的windows里面,找到网上邻居的debian,用刚才创建的用户,访问它,并向tmp目录拷贝一个文件。
0条评论