Linux网络配置Samba.docx
《Linux网络配置Samba.docx》由会员分享,可在线阅读,更多相关《Linux网络配置Samba.docx(22页珍藏版)》请在冰豆网上搜索。
![Linux网络配置Samba.docx](https://file1.bdocx.com/fileroot1/2022-11/21/0d6cd5a9-c792-4ae3-9c74-2bc853fe8320/0d6cd5a9-c792-4ae3-9c74-2bc853fe83201.gif)
Linux网络配置Samba
SAMBA配置
以浏览器管理SAMBA-SWAT
1、检查/etc/services文件,确定下行内容之前没有“#”
Swat901/tcp#SambaWebAdministrationTool
2、编辑/etc/xinetd.d/swat文件内容
Serviceswat
{Disable=no
Port=901
Socket_type=stream
Wait=no
Noly_from=“允许运行SWAT的地址”
User=root
Server=/usr/sbin/swat
Log_on_failure+=USERID
}
3、重启服务/etc/rc.d/init.d/xinetdrestart
4、http:
//允许运行SWAT的地址:
901输入root及其密码,出现SWAT管理界面
1Samba简介
Samba(SMB是其缩写)是一个网络服务器,用于Linux与Linux(最好用NFS),Linux和Windows间共享文件,在Windows网络中的每台主机既可以是文件服务器,也可以同时是客户机;一台Linux主机如果架设了Samba服务后,它既能充当服务器,同时也能作为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba服务器;在Windows网络中,能看到共享文件夹功能,可以把共享文件夹映射为本地网络驱动器。
在Linux中,就是通过Samba向网络中的主机提供共享文件系统,也可以把网络中其它机器的共享挂载在本地主机上使用;Samba用的是netbios协议,让Netbios和SMB在TCP/IP上运行。
2Samba功能和应用范围
Samba应用范围主要是Windows和Linux系统共存的网络中使用;如果一个网络环境都是Linux或Unix类的系统,可以用NFS;而Samba主要是提供共享文件和共享打印机;
3Samba服务器的两个相关启动程序、客户端及服务器配置文件等;
3.1:
Samba有两个服务器,一个是smb(监听139TCP端口),另一个是nmb(监听137,138两个UDP端口);smbd和nmbd使用的全部配置文件都保存在smb.conf文件中
smb是Samba的主要启动服务器,它能让其它主机知道该主机共享了什么;如果不打开nmb服务器的话,只能通过IP来访问,如:
在Windows的IE浏览器上输入下面的内容
\\192.168.1.5\共享目录
而nmb是解析用的,就是把这台Linux机器所共享的工作组及在此工作组下的netbiosname解析出来;一般的情况下,如果是用RPM包安装的Samba,一般可通过如下的方式来启动Samba服务器;
[root@localhost~]#/etc/rc.d/init.d/smbstart(stop/restart)
对于所有系统来说,通用的办法就是直接运行smb和nmb;当然要知道smb和nmb所在的目录才行;如果是自己编译的Samba,应该知道把Samba放在哪里了;
[root@localhost~]#/usr/sbin/smbd
[root@localhost~]#/usr/sbin/nmbd
查看服务器是否运行起来了,则用下面的命令;
[root@localhost~]#pgrepsmbd
[root@localhost~]#pgrepnmbd
关掉Samba服务器,也可以用下面的办法,大多是通用的;要root权限来执行;
[root@localhost~]#pkillsmbd
[root@localhost~]#pkillnmbd
3.2查看Samba服务器的端口及防火墙;
有时防火墙可能会把smbd服务器的端口封掉,所以应该查看smbd服务器所占用的端口;下面查看中,显示smbd所占用的端口是139和445;
[root@localhost~]#netstat-tlnp|grepsmb
tcp 0 00.0.0.0:
139 0.0.0.0:
* LISTEN 10639/smbd
tcp 0 00.0.0.0:
445 0.0.0.0:
* LISTEN 10639/smbd
如果有防火墙,一定要把这两个端口打开。
如果不知道怎么打开,还是把防火墙规则清掉;
[root@localhost~]#iptables-F或
[root@localhost~]#/sbin/iptables–F
3.3、查看Samba服务器的配置文件;
如果是用Linux发行版自带的Samba软件包,一般情况下Samba服务器的配置文件都位于/etc/samba目录中,服务器的主配置文件是smb.conf;也有用户配置文件smbpasswd、smbusers和lmhosts等;还有一个文件是secrets.tdb,这个文件是Samba服务器启动时自动生成的;
3.4、Samba在Linux中的一些工具(服务器端和客户端);
smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtree
smbclient smbcquotas smbmnt smbpasswd smbspool smbtar smbumount
smbdnmbd mount
其中服务器端的是smbd、nmbd、smbpasswd;其它的大多是客户端;这些并不是都需要一定要精通的,但至少得会用几个;比如smbmount(也就是mount加参数的用法),还有smbclient等;
3.5在Linux中的常用工具mount(smbmount)和smbclient;Windows查看Linux共享的方法;
3.5.1在Linux系统中查看网络中Windows共享文件及Linux中的Samba共享文件;
一般的情况下,要用到smbclient;常用的用法也无非是下面的;
[root@localhost~]#smbclient -L //ip地址或计算机名
smbclient是Samba的Linux客户端,在Linux主机上用来查看服务器上的共享资源,也可以象FTP一样,用户可以登录Samba服务器,也可以上传put和下载get文件,但对中文支持并不友好;
查看服务器上的资源;
smbclient-L//IP [-U用户名]
如果Samba服务器配置为user模式,就要加“-U用户名”,如果是share模式,省略也可;比如:
[root@localhost~]#smbclient-L //192.168.1.3 -Usir01
Password:
请输入用户sir01的密码
如果是用share模式,就可以不必理会用户和密码,直接用;
[root@localhost~]#smbclient-L //192.168.1.3
Password:
直接按回车
登录用户身份Samba服务器共享
以用户身份登录共享后,能象FTP用户一样,上传和下载文件;用put表示上传,用get表示下载;
smbclient //IP地址/共享文件夹 -U用户
说明:
可以用/sbin/ifconfig来查看本机IP;共享文件夹是在smb.conf中定义的[共享文件夹],比如[sir01]。
-U用户名表示Samba的用户;比如:
[root@localhost~]#smbclient//192.168.1.3/sir01-Usir01
Password:
Domain=[LINUXSIR]OS=[Unix]Server=[Samba3.0.21b-2]
smb:
\>ls
说明:
登录到Samba服务器上,就可以用smbclient的一些指令,可以象用FTP指令一样上传和下载文件;
smbclient命令说明
命令 说明
?
或help[command] 提供关于帮助或某个命令的帮助
!
[shellcommand] 执行所用的SHELL命令,或让用户进入SHELL提示符
cd[目录] 切换到服务器端的指定目录,如未指定,则smbclient返回当前本地目录
lcd[目录] 切换到客户端指定的目录;
dir或ls 列出当前目录下的文件;
exit或quit 退出smbclient
getfile1 [file2] 从服务器上下载file1,并以文件名file2存在本地机上
mgetfile1file2file3 filen 从服务器上下载多个文件;
md或mkdir目录 在服务器上创建目录
rd或rmdir 目录 删除服务器上的目录
putfile1[file2] 向服务器上传一个文件file1,传到服务器上改为file2
mputfile1file2filen 向服务器上传多个文件
3.5.2在Windows中访问LinuxSamba服务器共享文件的办法;
在网上邻居,查看工作组就能看得到,或者在浏览器上输入如下
\\ip地址或计算机名
这样就能看到这个机器上的共享了,如果访问不了,不要忘记把Linux的防火墙规划清掉,或让相应的端口通过;
3.5.3在Linux中smbfs文件系统的挂载;
mount的用法,加载网络中的共享文件夹到本地;mount就是用于挂载文件系统的,smbfs作为网络文件系统的一种,也能用mount挂载;
mount挂载smbfs的用法;
mount-tsmbfs-ocodepage=cp936,username=用户名,password=密码,dmask=777,fmask=777,-l //ip地址/共享文件夹名 挂载点
或
mount-tsmbfs-ocodepage=cp936,username=用户名,password=密码,-l //计算机名/共享文件夹名 挂载点
或
mount-tsmbfs -ocodepage=cp936 //ip地址或计算机名/共享文件夹名 挂载点
smbmount的用法:
smbmount-ousername=用户名,password=密码,-l //ip地址或计算机名/共享文件夹名 挂载点
smbmount //ip地址或计算机名/共享文件夹名 挂载点
说明:
如果SMB服务器是以share共享的,则无需用户名和密码就能挂载,出现密码提示时,直接回车就行;也可以用smbmount来挂载,这样就无需用mount-tsmbfs来指定文件系统的类型了;对于挂载点,要自己建立一个文件夹,比如可以建在/opt/smbhd;
在mount的命令中,参数codepage=cp936,这是服务器端文件系统的编码,cp936就是简体中文,当然也可以用utf8等,如果挂载了远程的smbfs文件系统出现的是简体中文乱码,就要考虑挂载时要指定编码了;
samba密码文件
samba口令文件由smbpasswdfile参数指定,默认为/etc/samba/smbpasswd,创建该文件的方法
#cat/etc/passwd|mksmbpasswd.sh>/etc/samba/smbpasswd
#vi/etc/samba/smbpasswd
#chownroot.root/etc/samba/smbpasswd
#chmod500/etc/samba
#chmod600/etc/samba/smbpasswd
#ll–d/etc/samba
#smbpasswdlrj
使用smbpasswd命令修改用户口令时,被修改的samba帐户的本地系统用户帐户必须事先已经存在,smbpasswd–a添加单个samba帐号并设置口令,要求被添加的samba帐号的本地系统用户帐户已事先存在,如若不存在使用useradd添加
#testparm检查配置文件语法有无错误
在Windows使用“网上邻居”映射网络驱动器,访问samba共享,
而Linux使用#smbclient–llocalhost检查服务器所共享的资源
Smb.conf文件结构:
Smb.conf由3个标准节和若干个用户自定义共享节所组成
[global]全局参数和缺省值
[homes]用户的主目录共享
[printers]打印机共享
[userdefined_sharename]用户自定义共享
Smb.conf文件语法:
该文件中常用的变量
%s当前服务台(共享名)
%p当前服务台的根路径(主目录)
%u当前服务台的用户名(共享用户名)
%H给定的%U的宿主目录
%v给定的%U的版本号
%h运行samba服务器的主机名
%m客户端的Netbios名
%L服务器的Netbios名
%T当前日期和时间
%M客户机主机名
%NNIS服务器名
%i客户机IP
Samba四种安全等级(security参数指定)
Share无需帐户,口令即可登录samba服务器
User由提供服务的samba服务器负责检查帐户及密码(默认)
Server由另一台WinNT/2000或其他Samba服务器负责审核用户名口令
Domain指定WinNT/2000域控制器验证用户帐号和口令
Samba使用/etc/samba/lmhosts文件存放netbios名与IP静态映射表,以作为Linux主机以samba客户端去访问Windows共享或其他Linux提供的samba共享
#cat/etc/samba/lmhosts
#vi/etc/samba/lmhosts
127.1.1.1Localhost
192.168.1.200shrike
192.168.1.100rh9
192.168.1.77win01
192.168.1.88win02
#smbclient-Lwin01
#smbclient//win01/tools–Uosmond
Smb:
\>?
类似FTP
\>quit
#mkdir–p/mnt/smb/win01
#smbmount//win01/tools/mnt/smb/win01将远程共享tools挂载到本地/mnt/smb/win01
#cd;unount/mnt/smb/win01
在Linux窗口模式下:
smb:
//210.31.8.89,输入Windows用户名密码,可访问该机共享
为实现自动加载,可在fstab文件中加入一行:
//192.168.2.100/samba/mnt/floppysmbfsdefaults,username=,password=11
4、由最简单的一个例子说起,匿名用户可读可写的实现;
#grep-v“^#”/etc/samba/smb.conf|grep-v“^;”
第一步:
更改smb.conf
创建让所有用户可以读写一个Samba服务器共享的一个文件夹;要改动一下smb.conf;首先备份一下smb.conf文件;
[root@localhost~]#cd/etc/samba
[root@localhostsamba]#mvsmb.confsmb.confBAK
重新创建一个smb.conf文件;
[root@localhostsamba]#touchsmb.conf
全局参数选项:
[global]全局配置,必须填写
workgroup=LinuxSir在Windows中显示的工作组
netbiosname=LinuxSir05在Windows中显示的计算机名
serverstring=LinuxSambaServerTestServerSamba服务器的说明,可自行定义
security=share验证和登录方式,如设为share,不用设用户名密码
Printcapname=/etc/printcap设置打印机配置文件路径
Loadprinters=yes是否加载打印机配置文件
Printing=cups设置打印机系统类型
Logfile=/var/log/samba/%m.log指定日志文件的名称
Maxlogsize=0指定日志文件的最大尺寸
Encryptpasswords=yes用于指定是否使用加密口令
Smbpasswdfile=/etc/samba/smbpasswd指定samba口令文件的路径
Unixpasswordsync=yes
Passwdprogram=/usr/bin/passwd%u
/usr/bin/passwd
Pampasswordchange=yes
Obeypamrestrictions=yes
Socketoptions=TCP_NODELAYSO_RCVBUF=8192SO_SNDBUF=8192服务器客户间会话选项
Dnsproxy=no
Clientcodepage=cp936设置客户字符编码页
Socketaddress指定samba监听的IP地址
Adminuser设定管理员帐号
Maptoguestguest登录名及口令不正确时的处理方式
Usernamemap指定SMB/Unix名字映射文件的路径
Hostallow=210.31.8except210.31.8.208可以访问samba的主机
Hostdeny禁止访问samba的主机
Changenotifytimeout设置服务器周期性异常通知
Deadtime客户端无操作多少分钟后服务器中断连接
getwdcache是否使用cache功能
keepalive服务器每隔多少秒向客户端发送keepalive包
maxopenfiles同一客户端最多能打开的文件数目
共享目录参数
[linuxsir]在Windows中显示的共享目录名
Comment=homeDirectories指定对共享的描述
Validusers=%s
Createmode=0644
directorymode=0755
path=/opt/linuxsir设置为共享的目录放在哪里(路径)
writeable=yes是否可写
browseable=yes是否可以浏览,是则在工作组下能看到共享文件夹
available=指定共享资源是否可用
readonly=指定共享的路径是否为只读
guestok=yes匿名用户以guest身份登录
guestaccount=指定一般性客户帐户
guestonly=是否只允许guest帐号访问
public=是否可以允许guest帐号访问
readlist=设置只读用户访问列表
writelist=设置读写用户访问列表
validusers=指定允许使用服务器的用户列表
invalidusers=指定不允许使用服务器的用户列表
配置举例:
#vi/etc/smb.conf
Workgroup=WORKGROUP
Serverstrin=sambaserver%vat%h
Hostsallow=192.168.1.
Clientcodepage=936
#vi/etc/samba/smb.conf
[resource]添加resource共享
Comment=localresource
Path=/var/samba/resource
Public=yes
Writable=yes
#mkdir–p/var/samba/resource
#cd/var/samba/resource
#ln–s/usr/share/docdoc
#ls–s/var/ftpftp
#vi/etc/samba/smb.conf
[tmp]
Comment=temporaryfilespace
Path=/tmp
Readonly=no读写共享
Public=yes
[cdrom]
Comment=CDROM
Path=/mnt/cdrom
Readonly=yes只读共享
Public=yes
为指定用户或组配置samba共享
#useraddfred#passwdfred
#smbpasswd–afred添加fred的samba帐号
#mkdir/var/samba/fred
#chownfred.fred/var/samba/fred更改目录属性
#vi/etc/samba/smb.conf
[freddirs]
Comment=fred’sservice
Path=/var/samba/fred
Validusers=fred
Public=no
Writable=yes
为指定的多个用户配置samba共享
#useraddtom#useraddben
#passwdtom#passwdben
#smbpasswd-atom
#smbpasswd-aben
#mkdir/var/samba/tomben
#chomod707/var/samba/tomben
#vi/etc/samba/tomben
[myshare]
Comment=tom’sandben’sshare
Path=/var/samba/tomben
Validusers=tom,ben
Public=no
Writable=yes
Createmask=707
为指定的组配置samba共享
#useraddstaff#passwdstaff
#useradd–Gstaffuser1#passwduser1
#useradd–Gstaffuser1#passwduser2
#s