linux下安装管理samba

上一篇 / 下一篇  2012-02-17 10:44:51 / 个人分类:linux

SMB 使用的 NetBIOS 通讯协议
SAMBA 则是透过两支服务来控制这两个步骤,分别是:
  • nmbd :这个 daemon 是用来管理工作组啦、NetBIOS name 啦等等的解析。 主要利用 UDP 协议开启 port 137, 138 来负责名称解析的任务;
  • smbd :这个 daemon 的主要功能就是用来管理 SAMBA 主机分享的目录、档案与打印机等等。 主要利用可靠的 TCP 协议来传输数据,开放的端口口为 139 及 445(不一定存在)

SAMBA启动需要者这个更daemons,另外在设置防火墙是也要注意137,138,139的设置。

==============================================================================================================================================================================

目前常见的 samba 版本为 3.x 版,旧版的 2.x 版在设定上有点不一样,因此在进入设定前请先确认你的 samba 版本。 咱们的 CentOS 4.x 提供的是 Samba 3.x 的版本。那么你需要什么套件呢?基本上有这些:

  • samba
    这个套件主要包含了 SAMBA 的主要 daemon 档案 (smbd 及 nmbd)、 SAMBA 的文件档 (document)、以及其他与 SAMBA 相关的 logrotate 配置文件及开机默认选项档案等;
  • samba-common
    这个套件则主要提供了 SAMBA 的主要配置文件 (smb.conf) 、 smb.conf 语法检验的测试程序 (testparm)等等;
  • samba-client
    这个套件则提供了当 Linux 做为 SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 文件格式的执行档 smbmount 等等。

==============================================================================================================================================================================

相关套件说明:

  • /etc/samba/smb.conf
    smb.conf 是 Samba 的主要配置文件名,如果你的 distribution 的 SAMBA 配置文件不在 /etc/samba/ 目录当中, 那么你应该使用 locate 或 find 等方式将他找出来就好啦。基本上,咱们的 Samba 就仅有这个配置文件而已, 且这个配置文件本身就是很详细的说明文件了,请用 vi 去查阅他吧!这个档案主要在设定工作组、 NetBIOS 名称以及分享的目录等相关设定,我们后续要介绍的都是这个档案而已啦!
  • /etc/samba/lmhosts
    这个档案的主要目的在对应 NetBIOS name 与该主机名的 IP,事实上他有点像是 /etc/hosts 的功能!只不过这个 lmhosts 对应的主机名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!由于目前 SAMBA 的功能越来越强大,所以通常只要您一启动 SAMBA 时,他就能自己捉到 LAN 里面的相关计算机的 NetBIOS name 对应 IP 的信息,因此这个档案通常可以不用设定了!
  • /etc/samba/smbpasswd
    这个档案预设并不存在啦!他是 SAMBA 默认的用户密码对应表。当我们设定的 SAMBA 服务器是较为严密的,需要用户输入账号与密码后才能登入的状态时,用户的密码默认就是放置在这里咯 (当然啰,您可以自行在 smb.conf 里面设定密码放置的地方及密码文件名, 不过我们这里都以预设的状态来说明) 。比较需要注意的是,这个档案因为包含了用户的密码, 当然权限方面要较为注意啦!这个档案的拥有者需要是 root ,且权限设定为 600 才行喔!
  • /etc/samba/smbusers
    由于 Windows 与 Unix-like 在管理员与访客的账号名称不一致,分别为 administrator 及 root, 为了对应这两者之间的账号关系,可以使用这个档案来设定。不过这个档案的使用必须要经由 smb.conf 内的『 username map 』设定项目来启动才行。
  • testparm
    这个指令主要在检验 samba 配置文件 smb.conf 的语法正确与否,当你编辑过 smb.conf 时,请务必使用这个指令来检查一次, 避免因为打字错误引起的困扰啊!
  • smbd, nmbd
    前几个小节曾经提过的两个主要 daemon 就在这里!
  • smbstatus
    列出目前的 SMB server 的状态,也是很有用途的一个指令啦!
  • smbpasswd
    如果您的 SAMBA 设定的较为严格,需要规定用户的账号与密码,那么那个密码档案的建立就需要使用 smbpasswd 来建置才可以的喔!所以这个指令与建立 SAMBA 的密码有关咯!
  • smbclient
    当你的 Linux 主机想要藉由『网络上的芳邻』的功能来查看别台计算机所分享出来的目录与装置时,就可以使用 smbclient 来查看啦!这个指令也可以使用在自己的 SAMBA 主机上面,用来查看是否设定成功哩!
  • smbmount
    在 Windows 上面我们可以设定『网络驱动器机』来连接到自己的主机上面,同样的,在 Linux 上面,我们可以透过 smbmount 来将远程主机分享的档案与目录挂载到自己的 Linux 主机上面哪!不过,其实我们也可以直接使用 mount 这个指令来进行同样的功能就是了。
  • nmblookup
    有点类似 nslookup 啦!重点在查出 NetBIOS name 就是了。
  • smbtree
    这玩意就有点像 Windows 系统的网络上的芳邻显示的结果,可以显示类似『靠近我的计算机』之类的数据, 能够查到工作组与计算机名称的树状目录分布图,有趣吧!
  • /usr/share/doc/samba-<版本>
    这个目录包含了 SAMBA 的所有相关的技术手册喔!也就是说,当您安装好了 SAMBA 之后,您的系统里面就已经含有相当丰富而完整的 SAMBA 使用手册了!值得高兴吧! ^_^,所以,赶紧自行参考喔!  
  • ==============================================================================================================================================================================

    配置流程:

    1. 在 smb.conf 当中设定好工作组、NetBIOS 主机名、密码使用状态等等与主机相关的信息;
    2. 在 smb.conf 内设定好预计要分享的目录或装置以及可供使用的用户数据;
    3. 根据步骤 2 的设定,在 Linux 文件系统当中建立好分享出去的档案或装置的权限;
    4. 根据步骤 2 的设定,以 smbpasswd 建立起用户的账号及密码
    5. 启动 Samba 的 smbd, nmbd 服务,开始运转哩!

    在 [global] 部分关于主机名信息方面的参数主要有:

    • workgroup = 工作组的名称:注意,主机群要相同;
    • netbios name = 主机的 NetBIOS 名称啊,每部主机均不同;
    • server string = 主机的简易说明,这个随便写即可。

     

    • display charset = 自己服务器上面的显示编码, 例如你在终端机时所查阅的编码信息。一般来说,与底下的 unix charset 会相同。
    • unix charset = 在 Linux 服务器上面所使用的编码,一般来说就是 i18n 的编码, 所以你必须要参考 /etc/sysconfig/i18n 内的『默认』编码。
    • dos charset = 就是 Windows 客户端的编码了!一般来说我们的繁体中文 Windows 使用的是 big5 编码,这个编码在 Samba 内的格式被称为『 cp950 』 。

    关于语系编码,建议您参考一下讨论区的这一篇:http://phorum.vbird.org/viewtopic.php?t=22001

    除此之外,还有登录文件方面的信息, 包括这些参数:

    • log file = 登录档放置的档案,文件名可能会使用变量处理;
    • max log size = 登录档最大仅能到多少 Kbytes ,若大于该数字,则会被 rotate 掉。

    还有跟密码有关的参数,包括这几个:

    • security = user, server, domain, share四选一,这四个设定值分别代表:
      • user:使用 SAMBA 本身的密码数据库,密码数据库与底下的 smb passwd file 有关;
      • share:分享的数据不需要密码即可分享;
      • server, domain:使用外部主机的密码,亦即 SAMBA 是客户端之意,如果设定这个项目, 你还得要提供『password server = IP』的设定值才行;
    • encrypt passwords = Yes 代表密码要加密,注意那个 passwords 要有 s 才对!
    • smb passwd file = 密码放置的档案,通常是 /etc/samba/smbpasswd 。

    事实上 Samba 的密码方面设定值有很多,包括你还可以利用 samba 来修改 /etc/passwd 里头的人物的密码. 不过这个时候就得需要『 unix password sync 』以及『 passwd program 』这两个参数值的帮忙了。 我们这里先谈比较简单的,其他进阶的部分可以 man smb.conf 去进行搜寻查阅.

     

    分享目录参数

    在目录参数部分,主要有底下这几个常见的参数喔:
    • [分享名称]:这个分享名称很重要,他是一个『代号』而已。 举例来说,你在 Windows 当中使用『共享』来分享网芳时,假设你将『D:\game』分享出来, 系统不是还会要你输入一个『在网络上面的名称』吗?假设你输入『My_Games』这个名称好了, 那么未来大家在网芳看到的这个文件夹 (D:\game) 名称其实是『\\你的IP\My_Games』啦!
    • comment:这个目录的说明!
    • path:在网芳中显示的名称 [分享名称] 中,所实际进入的 Linux 文件系统。 也就是说,在网芳当中看到的是 [分享] 的名称,而实际操作的文件系统则是在 path 里头所设定的。
    • read only:是否只读?
    • public:是否让所有可以登入的用户看到这个项目?
    • writable:是否可以写入?这里需要注意一下喔!那个 read only 与 writable 不是两个蛮相似的设定值吗?如果 writable 在这里设定为 no ,亦即不可写入,那跟 read only 不就互相抵触了!那个才是正确的设定?答案是:最后出现的那个设定值为主要的设定!
    • create mode 与 directory mode都与权限有关的咯!
    • valid users = 用户,这个项目可以指定能够进入到此资源的特定使用者。

    因为分享的资源主要与 Linux 系统的档案权限有关,因此里头的设定参数多与权限有关。

     

    变数特性

    为了简化设定值,Samba 提供很多不同的变量给我们来使用,主要有底下这几个变量喔:
    • %S:取代目前的设定项目值,所谓的『设定项目值』就是在 [分享] 里面的内容! 举例来说,例如底下的设定范例:
      [homes]
         valid users = %S
         ....
      因为 valid users 是允许的登入者,设定为 %S 表示任何可登入的使用者都能够登入的意思~今天如果 dmtsai 这个使用者登入之后,那个 [homes] 就会自动的变成了 [dmtsai] 了!这样可以明白了吗? %S 的用意就是在替换掉目前 [ ] 里面的内容啦!
    • %m:代表 Client 端的 NetBIOS 主机名喔!
    • %M:代表 Client 端的 Internet 主机名喔!就是 HOSTNAME。
    • %L:代表 SAMBA 主机的 NetBIOS 主机名。
    • %H:代表用户的家目录。
    • %U:代表目前登入的使用者的使用者名称
    • %g:代表登入的使用者的组名。
    • %h:代表目前这部 SAMBA 主机的 HOSTNAME 喔!注意是 hostname 不是 NetBIOS name 喔!
    • %I:代表 Client 的 IP 咯。
    • %T:代表目前的日期与时间

     


    TAG:

     

    评分:0

    我来说两句

    Open Toolbar