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 使用手册了!值得高兴吧!
^_^,所以,赶紧自行参考喔! ==============================================================================================================================================================================
配置流程:
- 在 smb.conf 当中设定好工作组、NetBIOS 主机名、密码使用状态等等与主机相关的信息;
- 在 smb.conf 内设定好预计要分享的目录或装置以及可供使用的用户数据;
- 根据步骤 2 的设定,在 Linux 文件系统当中建立好分享出去的档案或装置的权限;
- 根据步骤 2 的设定,以 smbpasswd 建立起用户的账号及密码
- 启动 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: