16.5 服务器简单维护与管理

除了上述的正规作法之外,其实还有一些稍微重要的事情要跟大家分享的!


16.5.1 服务器相关问题克服

通常我们在设定 SAMBA 的时候,如果是以单一主机的工作组 (Workgroup) 的方式来进行 smb.conf 的设定时,几乎很容易就可以设定成功了!并没有什么很困难的步骤。不过,万一还是无法成功的设定起来, 请务必察看登录档,也就是在 /var/log/samba/ 里面的数据!在这里面的资料当中,你会发现:咦! 怎么这么多档案啊!因为我们在 smb.conf 里面设定了:

log file = /var/log/samba/log.%m

那个 %m 是指客户端计算机的 NetBIOS Name 的意思,所以,当有个 vbirdwinxp 的主机来登入我们的 vbirdserver 主机时,那么登入的信息就会被纪录在 /var/log/samba/log.vbirdwinxp 档案喔!而如果万一来源 IP 并没有 Netbios name 的时候,那么很可能是一些错误讯息,这些错误讯息就会被纪录到 log.smbd, log.nmbd 里面去了!所以,如果你要察看某部计算机连上你的 SAMBA 主机发生了什么问题时,特别要留意这个登录档的形式喔!

另外,如果你的 SAMBA 明明已经启动完成了,却偏偏老是无法成功,又无法查出问题时,建议先关闭 Samba 一阵子,再重新启动:

/etc/init.d/smb stop

在鸟哥过去的案例当中,确实有几次是因为 PID 与 NetBIOS 的问题,导致整个 SAMBA 怪怪的~所以完整的关闭之后, 经过一阵子的短暂时间,再重新启动,应该就可以恢复正常了!

还有,万一你在进行写入的动作时,老是发现『你没有相关写入的权限!』,不要怀疑,几乎可以确定是 Permission 的问题,也就是 Linux 的权限与 SAMBA 开放的权限并不相符合,或者是 SELinux 在搞鬼!无论如何, 你必须要了解能不能写入 Linux 磁盘,看的是 PID 的权限与 Linxu 文件系统是否吻合,而那个 smb.conf 里面设定的相关权限只是在 SAMBA 运作过程当中『预计』要给使用者的权限而已,并不能取代真正的 Linux 权限喔!所以,万一真的发现该问题存在, 请登入 Linux 系统,查验一下该对应的目录的 permission 吧!^_^

另外,通常造成明明已经查到分享 (smbclient -L 的结果),却老是无法顺利挂载的情况,主要有底下几个可能的原因:

虽然 smb.conf 设定正确,但是设定值『 path 』所指定的目录却忘记建立了 (最常见的呆样!);
虽然 smb.conf 设定为可擦写,但是目录针对该用户的权限却是只读或者是无权限;
虽然权限全部都正确,但是 SELinux 的类型却错误了!
虽然全部的数据都是正确的,但是 SELinux 的规则 (getsebool -a) 却没有顺利启动。

上述都是一些常见的问题,更多问题的解决方案,请参考最正确的登录文件信息吧! ^_^


16.5.2 让使用者修改 samba 密码同时同步更新 /etc/shadow 密码

有个问题是,我们知道使用者可以透过 passwd 修改 /etc/shadow 内的密码,而且用户也能够自行以 smbpasswd 修改 Samba 的密码。如果用户是类似 PDC 的用户,那么这些用户理论上就很少使用 Linux 啦!那么想一想, 能否让用户在修改 Windows 密码 (就是 Samba) 时,同步更新 Linux 上面的 /etc/shadow 密码呢? 答案是可行的啦!而且动作并不困难~因为 smb.conf 里头已经提供了相对应的参数设定值!你可以参考底下的网站数据:

http://moto.debian.org.tw/viewtopic.php?t=7732&
http://de.samba.org/samba/docs/using_samba/ch09.html

鸟哥做个总结,基本上你需要的是 smb.conf 里面 [global] 的几个设定值:

[root@www ~]# vim /etc/samba/smb.conf
[global]
# 保留前面的各项设定值,并新增底下三行即可:
 unix password sync  = yes                <==让 Samba 与 Linux 密码同步
        passwd program      = /usr/bin/passwd %u <==以 root 呼叫修改密码的指令
        pam password change = yes                <==并且支持 pam 模块!

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

接下来,当你以一般用户 (例如 dmtsai) 修改 samba 的密码时,就会像这样:

[dmtsai@www ~]$ smbpasswd
Old SMB password:  <==得先输入旧密码,才能输入新密码
New SMB password:
Retype new SMB password:
Password changed for user dmtsai <==这就是成功的字样!

# 若出现底下的字样,应该就是你的密码输入被限制了!例如输入的密码字符少于 6 个!
machine 127.0.0.1 rejected the password change: Error was : Password restriction.
Failed to change password for dmtsai

16.5.3 利用 ACL 配合单一使用者时的控管

想象一个案例,如果你是学校的网管人员,有个兼任老师向你申请账号,主要是要在很多班级内取得同学的专题资料。 因为该老师是兼任的,你或许担心一不小心该教师就将同学的辛苦资料给销毁,倒不是教师们故意的, 而是很多时候…不熟嘛!这个时候如果你将该老师加入同学的群组,然后偏偏同学们所在的目录是群组可写入的话, 那么该教师就能够拥有可擦写的权限了,也就容易造成一些莫名的灾难~

那该怎么办?其实可以透过 ACL 来管理某个目录的单一用户权力啦!所以说, 权限的管理不必透过 smb.conf 的设定,只要透过 ACL 来管理就能够达到你所需要的目的了。 关于 ACL 的说明我们在基础学习篇第三版第十四章已经提过了, 这里不再啰唆,请自行前往查阅吶! ^_^


16.6 重点回顾

由 Tridgell 利用逆向工程分析网芳得到 Server Message Block 协议的产生;
Samba 名称的由来是因为需包含没有意义的 SMB server 之故;
SAMBA 可以让 Linux 与 Windows 直接进行文件系统的使用;
SAMBA 主要架构在 NetBIOS 上发展的,且以 NetBIOS over TCP/IP 克服 NetBIOS 无法跨路由的问题;
Samba 使用的 daemon 主要有管理分享权限的 smbd 以及 NetBIOS 解析的 nmbd
Samba 使用的模式主要有单机的 workgroup 方式,以及网域控管的 PDC 模式;
Samba 的主配置文件之档名为 smb.conf
smb.conf 内,主要区分为 [global] 服务器整体设定与 [share] 分享的资源两大部分
Samba 使用者账号控管主要的设定值为 security = {share,user,domain} 等
Samba 客户端可使用 smbclient 以及 mount.cifs 进行网芳的挂载
新版的 Samba 默认使用数据库记录帐户信息,新增账号用 pdbedit ,修改密码则用 smbpasswd
Samba 主要支持 CUPS 的打印机服务器
在权限控管方面,最容易出错的为 SELinux 的规则与类型 (SELinux type)
在 PDC 的设定方面,由于与主机名相关性很高,建议设定 lmhosts 档案内容为宜

郑重声明:

1 本资源来源于互联网,资源的版权归资源原作者所持有,受《中华人民共和国著作权法》等相关法律保护。

2 由于无法和原作者取得联系,所以上传的部分资源无法先通过原作者的同意就分享给大家了,如本资源侵犯了您(原作者)的权益,请联系我们(微信号 xiaohaimei1989),我们会立马删除您的资源,并向您表达诚挚的歉意!

3 本站是一个公益型网站,分享资源的目的在于传播知识,分享知识,收取一点点打赏的辛苦费是用于网站的日常运营开支,并非用于商业用途。

4 本站资源只提供学习和参考研究使用,使用过后请在第一时间内删除。本站不承担资源被单位或个人商用带来的法律责任。

发表评论