资源描述
Samba是一种自由软件包,用来让 Unix系统的操作系统与微软 Windows操 作系统的 SMB/CIFS (Server Message Block/Common In ternet File Sy stem )网络协定做连结。和 windows上的网上邻居原理是一样的。通过 SMB协议可以实现资源共享及打印机共享。Samba是Windows与Unix系统0S ( Operating System 的缩写,操作系统:windows、linux、Unix、Mac 等)之间搭建起的一座桥梁,可以实现资源共享,可以像FTP这样使用。SAMBA的工作原理:步骤1 :协议协商(1)客户端向服务端发送臥b联即“七薩商协攻指令包(2)服务谛将訴b negprot磋商结果返回客户端口一.PC-PTsamba clientServer- PTsamba ServerTF:1T2. 1, 22. 95NetMask:255.255.255.0步骤2:建立连接(3 )客戶端和服曇端建立会话,发送罪铝“吐tup and X.提交眯户和密玛14)服务端接收session setup扎井做出响应是允许还是拒绝本次连接uPC-PT5amba clrentIP: 172: 19.22-B4NtHask:255. 255.255. QSerYer*PTsamba ServerIf:172.19.22 65NetMask 255. 255. 255. 0步骤3:资源共享(5 J客户镐向服务端发送计歸connect and 1要访问贵源并指令包C 5 )服务端接收Ur沁di scnnect i检查師b皿磚己置文件r井做出响应PC-PTsamba clientIF:1T. 1.22.84U&tMiEk:255.255.25S.OServer-PTsamba ServerIFLT2 19.22.85Ne tMask: 255. 255.255. 0步骤4 :断开连接C 7)客户昴向服务诵发送好脏迪皿心关用共至的指令包(8)服务端接收坛 disconnect并撇出响应断开连接samba clientIF:1T2, 19.22.64NetMk:255. 255. 255. 0Server-PTsamba ServerIF:172.19.22 05lAtMak:2S5. 55.255.0Samba服务主要安装包为前三个安装包:samba-2.2.7a-7.9.0.i386.rpm /SambOl勺服务端软件(第一张镜像盘)samba-clie nt-2.2.7a-7.9.0.i386.rpm /SambO客 户端软件(第一张镜像盘) samba-common-2.2.7a-7.9.0.i386.rpm包括Samba服务器和客户端都需要的文件(第一张镜像盘)samba-swat-2.2.7a-7.9.0 /Samba勺 WEB 配置工具(第一张镜像盘)redhat-config-samba-1.0.4-1.noarch.rpm /Samb的 GUI 配置工具(第一张镜像 盘)samba-swat-2.2.7a-7.9.0.i386.rpm /Samb的 Web 配置工具(在第三张镜像盘) samba的主配置文件是 /etc/samba/smb.confrootlocalhost root# rpm -qa|grep samba/显示是否安装的samba服务roolloca llios I root rpm -qa grep saniasanba-t2 .2.7a7.9.0sanb32.2 ,7a-7#9*0redhi1-conrig-sanba-l.0*4Isanba-cornron-i .2 *7a-7 .9.0lanba-ci ient-2,2,7a-7.9*0rowl oraIhosI root#如果没有安装, 主菜单”-系统设置”-添加/删除应用程序”-打开软件包”- -“windows文件服务器”-更新”,或安装linux第三块镜像盘中的rpmdb辅 助安装包,然后切换到第一张linux镜像盘,用mount /dev/cdrom /mnt/cd rom命令将第一张镜像盘挂载,安装samba 主程序包,samba-client 客户端 软件包,还有 samba 的工具包 samba-com mon.用,#rpm -vh -aid samba*.rpm 。如果安装samba所需的依赖软件包都辅助安装了,就不用一个一 个找依赖包数据包安装上去,才安装软件包了。一次性安装。rootlocalhost root# smb/安装好后,samba服务端及客户端工具也安装上去了,输入smb按两次Tab键就会弹出以smb开头的工具出来。这些工具都存放在/usr/bin目录中。smbadduser smbc on trol smbm ount smbspool smbum ount smbcacls smbd smbpasswd smbstatus smbclie nt smb mntsmbpri nt smbtarrootlocalhost root# service smb start/启动samba服务可以上面的命令启动,也可以在主菜单 -系统设置-服务器 设置-服务-在smb前打勾-开始-启动samba服务,重新启动服务时serv ice smb restart 命令rooLihos lroo l P sc rv i ce sub a la r t启动SAB服务:fi-! -L启动bhU眼务:C训电rooIoca【ho*1rootierv 亡res Ld r t关闭SNB服务确起J关闭抽服务;(胡爲 I 1 f i) ij ill IhfiijJ启动bMl眼务:C疋-J i jBlo)roo11 oca【ho#1rool】AT兴丿 itj fiTrrootlocalhost root# ls -l /usr/sb in |grep mbd显示两个超级用户服务器,是 Samba的核心两个守护进程,一个是 n mbd,- 个是smbd,在服务器启动到停止期间持续的运行。Smbd负责监听139TCP端口,nmdb负责监听 137TCP和 137UDP端口。可以在 /etc/samba/smb.con主配 置文件中了解smbd和nmbd全部配置信息,smbd进程的主要作用是处理来到 的SMB数据包,为使用该数据包的资源与 Linux协商,而nmbd进程使得其他 主机(或工作站)能浏览Linux服务器。-rwxr-xr-x 1 root root632276 2003-03-14 n mbd-rwxr-xr-x 1 root root1794708 2003-03-14 smbdrootlocalhost root# pstree |grep mbd/查看服务器是否启动|-n mbd|-smbdrootlocalhost root# pgrep smbd/查看smbd是否运行rootlocalhost root# pgrep nmbd/查看nmbd是否运行rooiloca1hos tr oo1HIs -1 /usr/sb in grep rrint-rKr-xr-x11 oo 1rootB32276 2003-03-Unnbd-rr-xrx1rooiroot17947OS 2003-014snbdrooiloca1hos troot)#ps t ree grep iibdHntibd | - siibdrooiloca1hos t1250roollcca1ho& ttool#1 DO 1pgrep *irrtdpgrep nrrbil盼 1 lJ, :Jb1254持朮irooLioca1hos t1 (K I rF hirootlocalhost root# n etstat -t In p|grep smb/查看smb的139端口和445端口是否被防火墙封掉,只有一 139个也行了tcp 00 0.0.0.0:1390.0.0.0:*LISTEN9193/smbdrootlocalhost root# iptables -F如果不懂开放端口,就用上面的命令清楚防火墙规则,我也是新手。呵呵。或 用#/sbi n/i ptables -F命令清除是一样效果的。roo ttha; 1 roo lp nc ls la t - l Inp grep sirrbtcp00 0.0.0.0:1390.0.0.0:*U STBNrool loca ihos1 r&oLho re s 13 r Ih I动rcoI Ioca khos1斶;L I 間-L bh1roo 1 /J ne 1 s I a t -1 Inp grt p snbt cp0l35Ji/sntd ro(H Ihos 10 Q.0.0.0:139roo 11/i i|O.D.O.O1+LISTEN查看 windows xp 的 IP 配置,开始-运行(WIN+R)-cmd -ipconfig/allEthernet adapter 本地连接:00-E0-61-l?-6F-9D i NoConnect ion-spec if ic DNS SuffixDescript 101*- 国七 he met ControllerPhysical AddressDhrn. .Fn.hljFrlIP Addvess.Subnet Has It Default Gat DNS Seruers .,:Generic Harvell Vukon 98E805& based:172.19-22-84:255.255.254.0:172-19-23-254.:ia.88.B7.8822 :L0m 224.68rootlocalhost root# n etc onfig用netconfig网络配置工具进行配置,如果你不想这样配置也可以用vi打开编辑 /etc/sysco nfig/network-scripts/ifcfg-ethO 酉己置文件,DEVICE=ethO /网卡设备别名ONBOOT=yes 重启系统时启动该服务BOOTPROTO=static 使用静态 IP 类型IPADDR=172.19.22.85 /IP 地址是 172.19.22.85NETMASK=255.255.255.0 /子网掩码是 255.255.255.0GATEWAY=172.19.22.254 / 网关 IP 是 172.19.22.254 BROADCAST=172.19.22.255 /网络的广播地址.NETWORK=172.19.22.85 / 网络的初始地址USERCTL=no/非root用户没有控制设备的权限PEERDNS=no /dhcp类型一般都默认为yes让服务器修改/etc/resolv.conf文件.静 态默认为noTYPE=Ethernet 以太网类型 按Esc然后按:wq保存退出.rooIho s Ltcp01359/ snrhdroo t 1999 Red 他t* Inc.N? t wrk ton f iura i ionJd you I ike Lo se L up ne Lwork ing? 不要选择Use dyn amic IP con figuration这是自动获取IP,要设置我们想要的IP 地址,及子网掩码。IP address:172.19.22.85 netmask:255.255.255.0网关和主 DNS服务不用到先不设置用tab建切换到0K,回车。tconf ig(O 199U Red Hi 11 IncConf icute TCP/1P卩【esse enter I he P con f igur a t ion for this rm rh i n(j Eu chi tem shau Id be en 1? rE?d he an IP uddre s s in do L lcd-dcc inn 1 no I a I i on ( Cor exaiip te .LKe dynamc IP conf iura 1 ion ( EMXJTP/CHi/ be iwcn e Ecnvn t sIP addre& s:tnnsk ;f i3 u H 甘牡y * IPr i mi r v n:irr se r p r led i |咖飜Wb nex1 screenrootlocalhost root# service n etwork restart/重新启动网络服务器rootlocalhost root# ifconfig用in co nfing命令查看是否配置成功(Jhos 1 roo tA se rv i nt 1k rc s r 1止f十关闭接il eihO:关闭耳回接:I确定1设置网络墓數i肛】jE1弹出坏回接口*确定禅出界面thOxI1rMit4oca host root# i fconf igethOLink encap;Etheme 1 FMaddr 00:0C:29;31 ; 1D;07inet addr : 172 J9.22.85 Beast; 172 49-22 ,255fcsk:2SS.255.255.0no t coilf igroo tJoca lliost rdo t flIP HRIWGST RLNNINt; Ml.THTiST MlhMCW IV* u iluIn lor rupl10 Eh sc eddies s:0x2024Link encaptLoca1 Loopbackine t add r : 12? .0.(). 1 Msk:255 .0.0 .(JIf UXPIJAQi RimrG MUj 1G436 WiricilRX pj eke 1:41349 f rfor s ; 0 d ropped ?) ove i runs frarv : 0 TX pa ckc l s;41349 c rror s : 0 d ropped : U ove 3 runs :t) ca r r f-T :: coll isioRS:0 txqueue kn:0RX bytes:2830B97 by les of dat.by te sron172 J9.22-B4:i cnp_seq = l11=12S1int=0.193ITE64by te sfrom172 J9 .22.K4:jenp seq=2ti1=12811nv =0.H 9ITO阴by te srom172J9.22.K4;i ctrp_seq=SIt1=12呂tinD=0.120HU84by te sfrom172 J9.22.S4ti cnp_seq=4111=128t i ire =C. 12 5ITE172 1.22*84 ng s la I is l ics -一4 packe t s i ransmi l ted, 4 re ce i ved h 0% pa ckc 1 las s , l iiir 2S97itf r 1 L min/a vg/nmx/inicv = ).119/()13W/0. J 93/0 .02 rra f roolloca I ho si rooll/t |/在windows xp 创建一个文件夹,如:在F盘创建一个 windows,在windo ws文件夹,并设为共享,设置共享名为share,共享的文件夹其实为windows,然后再windows文件夹中创建一个linux.txt文件,如果不能设置共享, 就要安装网络向导了,然后关掉防火墙。属性空区當规J共享自定買|本地共享和安全鬥如果只跟这台计算机的苴他用户共李遠个立件夹 ,洁将苴拖动到芒垂丈拦文件夹.要将这个文件夹艮苴子文件夹设为专用识有您可 以访问)诸选择以下宣选框i 将这亍立件夹设为号用迦网貉共享和安全要跟网第用户和这台计茸机的苴他用户共亨这乍 文件夹,谙逵择下面的第一个复选框,键入一个 共拿各H在网络上共李这个立件夹0共享名QP : ihar t允许网路用户更改我的立件了解共享和安伞的事冬信民脸防火墙配此卄网络上其他计算 查看WinhwE防火墙设胃L 确定_ 廳消虚融)现在我们开始在linux下借助于smbmount命令来实现网络驱动器映射,具 体命令是:smbm ount /win dowsHostName/ShareName /mn t/smbdir -U administrator说明:此处的share name 指代wi ndows 共享目录名称,smbdir指代挂载点 名称,U指代登陆windows系统的用户名,administrator指代登陆windows主机下的共享文件夹 share name 映射为/mn t/smbdir.目录具体步骤是:在实现网络驱动映射前,首先在linux下建个文件夹:rootlocalhost root# mkdir -p /mn t/li nux/在/mnt/目录下建一个名为linux的目录挂载点,如果/mnt不存在,就先创建一 个/mnt目录在建一个linux目录,如果/mnt存在,就直接建linux目录。这就是 m kdir带一个参数-p的作用。rootlocalhost root# smbmou nt 172.19.22.84/share /mn t/li nux -U admi ni strator /用 smbmount挂载工具挂载 windows的共享目录至U ,/mnt/linux目录中,如果 wi ndows用户没有设置密码,直接回车。如果设置密码,输入wi ndows登陆用户密码,回车会行了。rootlocalhost root# ls -l /mnt/linux/显示/mnt/linux目录下是否有linux.txt文件订# nkdir -p /mi17 1 inuxtootloca Ihos I root# 1 i-1 /nji / I inux/f 1) p.l息用就IJ Jy JUd Li 1I ()0 IJJJk1941 12I inux L iPa s s wd r d 3-rr-xr-x I1 1 o ca I ho J; 1roo troo 11#too to iocaIhos t rooroolloca Ihost root# snbnount /172J9 22.84/share /imL/1 inux -U admins Ira tor /miL/1inux invu J id oplion U2193: se s s ion reque s t lo 172 . 9,22.84 i led ( seton reques l lo 172 fj i led rootlocalhost root# smbclient -L /172.19.22.84/smbmount是samba的Linux的客户端,查看 windows的共享资源rootloca Jho51 rootJ# snfcc1ient -L /172.19.22.84added interface jp=l72 J9,22 f 8S bcasi=172.19.22.25S n nvsk-25$. 2S5 .255 4) se ion Iequea I Id 1 72 J 922 kta i Ef d ( fii 1 Ted naiT no t presen t)sc ss ion 1 equfis I Lo 172 (3 i kd 1 Ca 1 Jed nanr no t pre sen t)Pa s i )c d:Dt)na in= NfeKE 0S=ndoft1!; 5*11 Sf rver- Wiidoyft 2000NAnagerSharcm wTypeGomren IIP| rootk)e3 IhoJ; l rootl# |j接下来配置,用samba服务将linux下的共享目录共享出来Linux 下有 samba 有四种安全级别,即 Share、User、Server、Domain, 它们的安全级别由低到高,在配置文件中具体由security参数指定。其中,Share级是指用户不需要账户和口令即可登录服务器;User级是Samba服务器默认的安全级别,是指服务器负责检查登陆者的账户和口令;Server级是指账户和口令的检查由另外的 Samba或Windows服务器负责;Domain级是 指由一台Windows NT/2000 域服务器负责检查账户和口令。用户在配置 Sa mba服务器时,可以根据所需要的不同安全等级来具体配置rootlocalhost root# cd /etc/samba/切换到/etc/samba 目录rootlocalhost samba# mv smb.c onf smb.c on f.bak/ 将 smb.conf 文件改名为 smb.conf.bakrootlocalhost samba# grep -v # smb.c on f.bak ./smb.c onfII显示去掉前面“#说明,并显示文件的内容重定向导到当前目录的smb.conf文件中。rootlocalhost samba# vim smb.c onfII打开编辑smb.conf配置文件roqIhos t root!# cd / ./snb (nif f roo t1::1 loea Ihos I s a nba vim snb confglobal/设置全局参数globalworkgroup = MYGROUP I/windows 的工作组netbios name=Linuxsamba 设置主机名,Linux 系统的主机名 server stri ng = Samba Server IIsamb服 务说明;hosts allow = 192.168.1. 192.1682 127.prin tcap name = IetcIpri ntcap /设置打印机配置文件路径load prin ters = yes /设置是否允许共享打印printing = cups /设置目录文件的路径;guest acco unt = pcguest IIlog file = Ivar/log/sambaI%m.log II 设置目录文件的路径max log size = 0 /对日志文件的文件长度不作限制security = share /设置User级的安全等级;password server = ;password level = 8;user name level = 8en crypt passwords = yes 设置用户采用口令加密smb passwd file = Ietc/samba/smbpasswd 设置口令文件的路径;ssl CA certFile = Iusr/share/ssl/certsIca-b un dle.crtunix password sync = Yes /设置Samba用户和Linux系统账户同步passwd program = Iusr/b in Ipasswd %u 设置本地口令程序passwd chat = *New*password* %nn *Retype* new*password* %nn *passwd:*all*authe nticatio n*toke ns*updated*successfully*pam password change = yes设置用户使用 pam 更改口令;user name map = Ietc/samba/smbusers;in clude = Ietc/samba/smb.co nf.%mobey pam restrictions = yes 认证用户时,服从 pam 管理socket optio ns = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 / 设 置服务器和客户间会话的Socket选项dns proxy = no /不为客户做 DNS查询homes / 设置用户的主目录共享 comment = Home Directories /提供用户主目录服务 browseable = no /其他用户不能浏览该用户主目录 writable = yes /允许用户进行写操作 valid users = %Screate mode = 0664 /创/ 建文件模式制定的权限为当前用户为读写,组用户为读 写,其他用户为读directory mode = 0775/创建目录模式为当前用户为读写执行权限,组用户为读 写执行权限,其他用户为读执行权限; map to guest = bad user; netlogon / 网络登录服务共享名; comment = Network Logon Service /网络登录说明; path = /usr/local/samba/lib/netlogon /网络登录的共享文件夹路径; guest ok = yes /是/ 否允许匿名用户访问; writable = no / 是否允许匿名用户读操作; share modes = no /共/ 享模式默认为否 Profiles / 共享目录为 profile; path = /usr/local/samba/profiles /共享目录路径; browseable = no /是否可浏览的; guest ok = yes /是否允许匿名用户访问printers / 设置全部打印机共享 comment = All Printers / 共享说明为所有的打印共享 path = /var/spool/samba /打/ 印共享目录为 /var/spool/samba browseable = no /浏览时是否显示 guest ok = no /是否允许匿名用户访问 writable = no / 是否允许匿名用户写操作 printable = yes /是否允许打印;tmp / 设置共享目录名为 tmp; comment = Temporary file space /共/ 享目录说明; path = /tmp /共享目录; read only = no /是否为只读操作; public = yes /是否是公用的 ;public / 公用目录共享名; comment = Public Stuff /共享说明; path = /home/samba /共/ 享目录的路径; public = yes /是否公开目录writable = yes /是否有写的权限 printable = no /是否允许打印 write list = staff /staff 组有写的权限;fredsprn; comment = Freds Printer /共/ 享目录说明; valid users = fred /说明访问 fredsprn 的用户是 fred; path = /home/fred /共享路径; printer = freds_printer /打印机类型; public = no / 是否允许匿名用户访问; writable = no / 目录是否可写; printable = yes /是否可以打印 ;pchome; comment = PC Directories; path = /usr/local/pc/%m; public = no; writable = yes;myshare /共享目录名; comment = Marys and Freds stuff /共/ 享目录说明; path = /usr/somewhere/shared 共/ 享目录路径; valid users = mary fred /允许 mary 和 fred 用户访问; public = no / 是否允许匿名用户访问; writable = yes /是否有写的权限; printable = no /是否允许打印; create mask = 0765 /创/ 建文件的默认的权限,当前用户有读写执行,组有读 写权限,读执行权限现在来试一下 share安装级别,找至U security=user,将其改为 security=share,女口 果很多显示文件,可以通过下列方式寻找,在命令模式中输入/security然后回车就行跳到安全级别security单词位置先查了一遍smb.conf文件所有的单词都 标上另特定的颜色,最后跳到第一个security单词位置,按i进入编辑模式。按左右光标进行向左向右移动,按上下光标进行上下移动。= 113 repa suurd se rver = pa nwjrd J e ve t = 8use rnant 】ev I - Sencr i11 pn u让!; = ye i!i I i :“厂i = /e I c/ sa nba / snbpa ssl A certFi k = sr/shire/ssl/certs/ci-bundle crtunix pzs書谢)rd sync = Yesp-i -1 wl f. in?卽 |笛三 /n r / b in/pa s s (tonrwhcre/f Lsc/pubII ic pub Iic = ye sny yues l = yes vki i tab Lf = ye s pr tnlb Io = no;ra sha recormpn i = M V s and Fred sdFpLh = Aisr /soiwkre/sharedva i id users = imry fred pub Jic = nowi i t3h e = yespi in 1 ab Ie = noci ea tc mi sk - D7fSr$ba Server (172-19.22-85)文件世编辑 查看辺收藏工具帮助0麻O歯”.崔索交件夹函妙 t 0 X W172. 19.22.es添加一亍网上邻居 查着网络连接设置家庭或小型办公网 络为冢庭或小型办娄室设 置无线网路#直看工作组计算机|品示联网的UF血设备 4的團标苕它位置ffygrcup 我的电腕 我的文档 共李文档 打印机和传且详躺信且3个对象在目录中创建 word文件不允许创建后退 Q侈戶蹴I?文件夹 囲地址 0 疋 m 19. 22rootlocalhost samba# Is -Id /usr/somewhere/else/public/因为window访问属于其它用户,从显示的详细的文件信息中看出,其它用户只有执行的 权限,其它用户对目录没有读写的权限drwxr-xr-x 2 root root 4096 4 月 12 22:19 /usr/somewhere/else/public/rootlocalhost samba# chmod o+rw /usr/smewhere/else/public/设置其它用户的权限,其它用户可以读写f roo tlocu Jhos t sanha drwxrxr-x 2 root1 i/roo tloca Jhos I sanrba f roo t ? I oca Jhos t sanhaIs - Id /us r/sonuhe re/eIse/pub H c/root409G 幼 12 22:19 /u s r /rt - l- I so /IJJ Jrchrrod o+r w /usr/sontuhe r e/e / pub I i c/关掉窗口在重新打开,可以对目录进行读写操作了/ public 在 Saaba Server (172-19.22-85) 上文件编辑查看妁收厳工具 帮肋Qi)駆 苗,R攪索 文件夹地址卸 N W172 19 2. S5Pu11jc 文件和文件夹任务I j创建F个新立件夹輕罟文件夹发布到1 lirtuxxcrcusoft Wo-ri 文档f ,二 | H 订i如果访问myshare是不允许访问的,安全级别不是share不能访问。连接到 172- 19. 22. 85正在连 ffiSl 172. 19.22.05闿尸名40-C 1忆许.22;禹询密玛()记性我的密码仗)rootlocalhost samba# useradd mary/创建mary用户rootlocalhost samba# useradd fred创建fred用户rootlocalhost samba# smbpasswd -a mary设置smb用户mary的密码,可以用 smbpasswd +用户,进行修改密码,加选项参数-d:删除用户权限,无法访问。-x:删除用户。-e:使用户重新恢复权限。-m :加成信任主机账户New SMB password:Retype new SMB password:un able to ope n passdb database.Added user mary.rootlocalhost samba# smbpasswd -a fred/设置smb用户fred的密码New SMB password:Retype new SMB password:Added user fred.rootlocalhost samba#roct(JL|oca lho(i t sarrba use radd ira ryrootloc Ihoji I sanba 1Z1 useradd fredroatlaca Ihos I Ji a nrtm 1-a rw rybt w SNB pa s sRetype new SMI pas5word:unab le to open pa sdb da Laba sc .Added user nory .r do tlaea lho(i t sarrba 1 /i nbpn sa fredNbw SM3 pas vuo r d;Re lype new ShB pa s sr(1:Ad血d user fred.rdo tb 1 loea Ihos I sarrba P 岸rootlocalhost samba# grep mary /etc/passwd查看mary用户密码,如果将:x:中的x去掉,该用户就不要用密码,就可以登录了。mary:x:501:501:/home/mary:/b in/bashrootlocalhost samba# grep fred /etc/passwdfred:x:502:502:/home/fred:/bi n/bashroot : I o ca I
展开阅读全文