设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 操作系统 >> 经验技巧 >> 常用Linux与Windows共享建最简Samba
精品推荐
经验技巧点击TOP10
·制作Windows XP和Vista双系统启动菜单
·网吧操作系统制作与优化2007最终版
·FAT32转换NTFS的方法
·解决系统提示"你是软件盗版的受害者"
·如何双启动Windows XP和Windows Vista
·解读多重启动引导文件——BOOT.INI
·微软操作系统进程详解
·Windows 2000,Windows XP,Windows 2003 系统重新封装参考资料
·批处理命令 xp服务优化
·快速重装Windows操作系统的众多要点
操作系统点击TOP10
·Windows Vista完全硬盘安装法
·Windows Vista 激活不求人
·Windows Vista局域网网络连接设置
·Windows Vista系统动态桌面截图欣赏
·Windows XP中磁盘的分区应用
·Windows NT/2000/XP 出现蓝屏并显示“STOP 0x0000007f”错误
·让Windows XP变身Vista
·一招搞定Vista系统软件不兼容问题
·教你如何正确配置和优化Windows Vista
·只转两圈 加快Windows XP启动速度
精选专题

常用Linux与Windows共享建最简Samba

作者: 来源:http://www.xgdown.com/ 时间:2006-9-30 7:34:45

常用Linux与Windows共享建最简Samba(1)

  架设Samba 服务器的前提

  Linux是一个多用户的操作系统,对任何服务器的架设与都用户、用户组及权限相关,这是操作的基础。Samba服务器也不例外,对这些知识的掌握也是极为重要的。在Windows系统上虽然也能架共享文件服务器,但它的权限控制实在令人不敢恭维。如果我们用Windows系统来架网络共享文件系统,就是点鼠标也能把我们点迷糊了。但在Linux中,我们可以轻松的改一改配置文件,不到几分钟就能建好自己的Samba服务器。哪个更容易,只有你知道;

  对于Samba服务器的架设,有的弟兄简单的认为,只要把改一下配置文件,创建好相应的目录就行了。其实并不是这样的,还要深入的工作,比如目录的权限和归属,也就是说能让哪个用户和用户组有读写权。只有把配置文件和共享目录的权限结合起来,才能架好Samba服务器;

  下面是常用的基础知识,我们在本文中所涉及的内容都可以在下面的列表中找到相应的解释;

  0.1 查看文件内容和编辑文件的工具;

  《Linux 文件内容查看工具介绍》

  《文件编辑器 vi》

  0.2 关于文件和目录相关;

  《Linux 文件类型 及文件的扩展名》

  《Linux 文件和目录管理之列出、删除、复制、移动及改名》

  《Linux 文件和目录的属性》

  《简述Linux文件搜索》

  03 用户和用户组相关;

  《Linux 用户(user)和用户组(group)管理概述》

  《用户(User)和用户组(Group)配置文件详解》

  《Linux 用户管理工具介绍》

  《Linux 用户(User)查询篇》

  04 进程管理;

  《Linux 进程管理》

  1、Samba 简介

  Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的;

  大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器;

  我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说和FTP是不一样的。

  Samba 用的netbios协议,如果您用Samba 不成功,

  Linux与Windows 、Linux 和 Linux

  2、Samba 功能和应用范围

  Samba 应该范围主要是Windows和Linux 系统共存的网络中使用;如果一个网络环境都是Linux或Unix类的系统,没有必要用Samba,应该用NFS更好一点;

  那Samba 能为我们提供点什么服务呢?主要是共享文件和共享打印机;

  3、Samba 两个服务器相关启动程序、客户端及服务器配置文件等;

  3.1 Samba 有两个服务器,一个是smb,另一个是nmb;

  smb 是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;如果不打开nmb服务器的话,只能通过IP来访问,比如在Windows的IE浏览器上打入下面的一条来访问;

  \\192.168.1.5\共享目录

  \\192.168.1.5\opt

  而nmb是解析用的,解析了什么呢?就是把这台Linux机器所共享的工作组及在此工作组下的netbios name解析出来;

  一般的情况下,在RPM包的系统,如果是用RPM包安装的Samba ,一般可以通过如下的方式来启动Samba服务器;

  [root@localhost ~]# /etc/init.d/smb start

  启动 SMB 服务: [ 确定 ]

  启动 NMB 服务: [ 确定 ]

  如果停止呢?就在smb后面加stop ;重启就是restart

  [root@localhost ~]# /etc/init.d/smb stop

  [root@localhost ~]# /etc/init.d/smb restart

  对于所有系统来说,通用的办法就是直接运行smb 和nmb;当然您要知道smb和nmb所在的目录才行;如果是自己编译的Samba ,您应该知道您把Samba放在哪里了;

  [root@localhost ~]# /usr/sbin/smbd

  [root@localhost ~]# /usr/sbin/nmbd

  查看服务器是否运行起来了,则用下面的命令;

  [root@localhost ~]# pgrep smbd

  [root@localhost ~]# pgrep nmbd

  关掉Samba服务器,也可以用下面的办法,大多是通用的;要root权限来执行;

  [root@localhost ~]# pkill smbd

  [root@localhost ~]# pkill nmbd

  3.2 查看Samba 服务器的端口及防火墙;

  查看这个有何用呢?有时你的防火墙可能会把smbd服务器的端口封掉,所以我们应该smbd服务器所占用的端口;下面查看中,我们知道smbd所占用的端口是139和445 ;

  [root@localhost ~]# netstat -tlnp grep smb

  tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 10639/smbd

  tcp 0 0 0.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

  smbd nmbd 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 -U sir01

  PassWord: 请输入用户sir01的密码

  如果您是用share模式,就可以不必理会用户和密码,直接用;

  [root@localhost ~]# smbclient -L //192.168.1.3

  Password: 直接按回车

  登录用户身份Samba服务器共享

  以用户身份登录共享后,能象FTP用户一样,下传和下载文件;用put表示上传,用get表示下载;

  smbclient //IP地址/共享文件夹 -U 用户

  说明:IP地址大家都知道,你不知道自己的IP地址,可以用/sbin/ifconfig 来查看; 共享文件夹是我们在smb.conf中定义的[共享文件夹],比如[sir01]。-U 用户名表示Samba 的用户;

  比如:

  [root@localhost ~]# smbclient //192.168.1.3/sir01 -U sir01

  Password:

  Domain=[LINUXSIR] OS=[Unix] Server=[Samba 3.0.21b-2]

  smb: \> ls

  说明:登录到Samba服务器上,就可以用smbclient的一些指令,可以象用FTP指令一样上传和下载文件;

  smbclient 命令说明

  命令 说明

  ?或help [command] 提供关于帮助或某个命令的帮助

  ![shell command] 执行所用的SHELL命令,或让用户进入 SHELL提示符

  cd [目录] 切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录

  lcd [目录] 切换到客户端指定的目录;

  dir 或ls 列出当前目录下的文件;

  exit 或quit 退出smbclient

  get file1 file2 从服务器上下载file1,并以文件名file2存在本地机上;如果不想改名,可以把file2省略

  mget file1 file2 file3 filen 从服务器上下载多个文件;

  md或mkdir 目录 在服务器上创建目录

  rd或rmdir 目录 删除服务器上的目录

  put file1 [file2] 向服务器上传一个文件file1,传到服务器上改名为file2;

  mput file1 file2 filen 向服务器上传多个文件

  3.5.2 在Windows中访问Linux Samba服务器共享文件的办法;

  这个简单吧,在网上领居,查看工作组就能看得到,或者在浏览器上输入如下的

  \\ip地址或计算机名

  这样就能看到这个机器上有什么共享的了,点鼠标操作完成;如果访问不了,不要忘记把Linux的防火墙规划清掉,或让相应的端口通过;

  3.5.3 在Linux中smbfs文件系统的挂载;

  mount 的用法,加载网络中的共享文件夹到本地机;mount就是用于挂载文件系统的,SMB做为网络文件系统的一种,也能用mount挂载;smbmount说到底也是用mount的一个变种;

  mount 挂载smbfs的用法;

  mount -t smbfs -o codepage=cp936,username=用户名,password=密码 , -l //ip地址/共享文件夹名 挂载点

  或

  mount -t smbfs -o codepage=cp936,username=用户名,password=密码 , -l //计算机名/共享文件夹名 挂载点

  或

  mount -t smbfs -o codepage=cp936 //ip地址或计算机名/共享文件夹名 挂载点

  smbmount的用法:

  smbmount -o username=用户名,password=密码 , -l //ip地址或计算机名/共享文件夹名 挂载点

  smbmount //ip地址或计算机名/共享文件夹名 挂载点

  说明:

  如果您的服务器是以share共享的,则无需用户名和密码就能挂载,如果出现要密码的提示,直接回车就行;您也可以用smbmount 来挂载,这样就无需用mount -t smbfs来指定文件系统的类型了;

  对于挂载点,我们要自己建立一个文件夹,比如我们可以建在/opt/smbhd,这由您说的算吧;

  在mount的命令中,我们发现有这样的一个参数codepage=cp936,这是服务器端文件系统的编码的指定,cp936 就是简体中文,当然您可以用utf8等,尝试一下吧。

  如果您挂载了远程的smbfs文件系统出现的是简体中文乱码,就要考虑挂载时要指定编码了;

  4、由最简单的一个例子说起,匿名用户可读可写的实现;

  第一步: 更改smb.conf

  我们来实现一个最简单的功能,让所有用户可以读写一个Samba 服务器共享的一个文件夹;我们要改动一下smb.conf ;首先您要备份一下smb.conf文件;

  [root@localhost ~]# cd /etc/samba

  [root@localhost samba]# mv smb.conf smb.confBAK

  然后我们来重新创建一个smb.conf文件;

  [root@localhost samba]#toUCh smb.conf

  然后我们把下面这段写入smb.conf中;

  [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@localhost ~]# mkdir -p /opt/linuxsir

  [root@localhost ~]# id nobody

  uid=99(nobody) gid=99(nobody) groups=99(nobody)

  [root@localhost ~]# chown -R nobody:nobody /opt/linuxsir

  注释:关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。有些系统nobody用户组并非是nobody ;

  第三步:启动smbd和nmbd服务器;

  [root@localhost ~]# smbd

  [root@localhost ~]# nmbd

  第四步:查看smbd进程,确认Samba 服务器是否运行起来了;

  [root@localhost ~]# pgrep smbd

  13564

  13568

  第五步:访问Samba 服务器的共享;

  在Linux 中您可以用下面的命令来访问;

  [root@localhost ~]# smbclient -L //LinuxSir05

  Password: 注:直接按回车

  在Windows中,您可以用下面的办法来访问;

  \\LinuxSir05\

  5、复杂一点的用户共享模型(适合10人左右的小型企业);

  比如一个公司有五个部门,分别是linuxsir,sir01,sir02,sir03,sir04。我们想为这家公司设计一个比较安全的共享文件模型。每个用户都有自己的网络磁盘,sir01到sir04还有共用的网络硬盘;所有用户(包括匿名用户)有一个共享资料库,此库为了安全是只读的;所有的用户(包括匿名用户)要有一个临时文件终转的文件夹... ....

  5.1 共享权限设计实现的功能;

  1)linuxsir部门具有管理所有SMB空间的权限;

  2)sir01到sir04拥有自己的空间,并且除了自身及linuxsir有权限以外,对其它用户具有绝对隐私性;

  3)linuxsir01到linuxsir04拥有一个共同的读写权限的空间;

  4) 所有用户(包括匿名用户)有一个有读权限的空间,用于资料库,所以不要求写入数据。

  5)sir01到sir04还有一个共同的空间,对sir01到sir04的用户来说是隐私的,不能让其它用户来访问。

  6) 还要有一个空间,让所有用户可以写入,能删除等功能,在权限上无限制 ,用于公司所有用户的临时文档终转等;

  5.2 在服务器上创建相应的目录;

  [root@localhost ~]# mkdir -p /opt/linuxsir

  [root@localhost ~]# cd /opt/linuxsir

  [root@localhost linuxsir]# mkdir sir01 sir02 sir03 sir04 sirshare sir0104rw sirallrw

  [root@localhost linuxsir]# ls

  sir01 sir0104rw sir02 sir03 sir04 sirallrw sirshare

  注:功用如下:

  /opt/linuxsir 这是管理员目录,负责管理其下所有目录;

  /opt/linuxsir/sir01 是sir01的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;

  /opt/linuxsir/sir02 是sir02的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;

  /opt/linuxsir/sir03 是sir03的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;

  /opt/linuxsir/sir04 是sir04的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;

  /opt/linuxsir/sirshare 所用用户(除了linuxsir有权限写入外)只读目录

  /opt/linuxsir/sir0104rw 是用于sir01到sir04用户可读可写共用目录,但匿名用户不能读写;

  /opt/linuxsir/sirallrw 用于所有用户(包括匿名用户)的可读可写;

  5.3 添加用户用户组,设置相应目录家目录的权限;

  5.3.1 添加用户组;

  [root@localhost ~]# /usr/sbin/groupadd linuxsir

  [root@localhost ~]# /usr/sbin/groupadd sir01

  [root@localhost ~]# /usr/sbin/groupadd sir02

  [root@localhost ~]# /usr/sbin/groupadd sir03

  [root@localhost ~]# /usr/sbin/groupadd sir04

  [root@localhost ~]# /usr/sbin/groupadd sir0104

  5.3.2 添加用户;

  [root@cuc03 ~]# adduser -g sir01 -G sir0104 -d /opt/linuxsir/sir01 -s /sbin/nologin sir01

  [root@cuc03 ~]# adduser -g sir02 -G sir0104 -d /opt/linuxsir/sir02 -s /sbin/nologin sir02

  [root@cuc03 ~]# adduser -g sir03 -G sir0104 -d /opt/linuxsir/sir03 -s /sbin/nologin sir03

  [root@cuc03 ~]# adduser -g sir04 -G sir0104 -d /opt/linuxsir/sir04 -s /sbin/nologin sir04

  [root@cuc03 ~]# adduser -g linuxsir -d /opt/linuxsir -G linuxsir,sir01,sir02,sir03,sir04,sir0104 -d /opt/linuxsir -s /sbin/nologin linuxsir

  为什么这样添加用户?请参考:

  《Linux 文件和目录的属性》

  《Linux 用户管理工具介绍》

  当然我们还得学会查看用户信息的工具用法,比如 用finger和id来查看用户信息,主要是看用户是否添加正确;比如;请参考《Linux 用户(User)查询篇》

  [root@localhost ~]# id linuxsir

  [root@localhost ~]# finger linuxsir

共3页 9 7 [1] [2] [38 :>

常用Linux与Windows共享建最简Samba 相关文章:
常用Linux与Windows共享建最简Samba 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com