网上邻居的实现在Linux环境中是由Samba这套软件来完成的。搭建一个网上邻居服务器,需要掌握:
1. 软件安装与查询
我们已经知道网上邻居需要安装的是Samba这个软件,那么该如何查询有没有安装?如果没有安装又该如何安装?
已安装的软件可以使用rpm查询,尚未安装的则可以使用yum功能。所有可以这样操作
[root@localhost ~]# rpm -qa | grep -i samba
samba-common-3.5.4-68.316_0.2.x86_64
samba-client-3.5.4-68.e16_0.2.x86_64
samba-winbind-clients-3.5.4-68.e16_0.2.x86_64
# 看起来samba主程序尚未被安装!此时就要这样做:
[root@localhost ~]# yum search samba <==先查一下有没有相关的软件
[root@localhost ~]# yum install samba <==找到之后,那就安装把!
# 那么如何找到配置文件呢?因为我们总是需要修改配置文件,可以这样做:
[root@localhost ~]# rpm -qc samba samba-common
/etc/logrotate.d/samba
/etc/pam.d/samba
/etc/samba/smbusers
/etc/samba/lmhosts
/etc/samba/smb.conf
/etc/sysconfig/samba
2. 服务器的基本配置与相关配置
这部分有点麻烦,因为你要清楚地知道,你到底需要的服务是什么,针对该服务需要设置的项目有哪些?这些设置需要用到什么命令或配置文件等。一般来说,你需要先查看这个服务使用的通信协议是什么,然后了解该如何设置,接下来编辑配置文件,根据主配置文件的数据去执行相应的命令来取得正确的环境设置。以我们这里的网上邻居为例,我们需要设置工作组,然后需要设置可以使用网上邻居的身份为非匿名,接下来就能够开始处理主配置文件。因此需要:
- 先使用vim去编辑/etc/samba/smb.conf配置文件
- 利用useradd建立所需要的网上邻居实体用户
- 利用smbpasswd建立可用网上邻居的实体账户
- 利用testparm测试一下所有数据语法是否正确
- 检查看看在网上邻居内共享的目录权限是否正确
服务器的启动与观察
在设置妥当之后,接下来当然就是启动该服务器了。一般服务器的启动大多是使用standalone的模式,如果是比较少用的服务,如Telnet,就比较有可能用到super daemon的服务启动类型。
###例题 如何启动Samba这个服务?并且设置好开机就启动它。
#先查询一下启动的方式是什么:
[root@localhost ~]# rpm -ql samba | grep '/etc'
/etc/logrotate.d/samba
/etc/openldap/schema
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
/etc/rc.d/init.d/nmb
/etc/rc.d/init.d/smb <==所以说是stand alone且文件为smb、nmb两个!
/etc/samba/smbusers
#开始启动它,且设置为开机就启动
[root@localhost ~]# /etc/init.d/smb start
[root@localhost ~]# /etc/init.d/nmb start
[root@localhost ~]# chkconfig smb on
[root@localhost ~]# chkconfig nmb on
#接下来,让我们观察一下有没有启动相关的端口
[root@localhost ~]# netstat -tlunp | grep '[sn]mb'
tcp 0 0 :::139 :::* LISTEN 1484/smbd
tcp 0 0 :::445 :::* LISTEN 1484/smbd
udp 0 0 0.0.0.0:137 0.0.0.0:* LISTEN 1492/smbd
udp 0 0 0.0.0.0:138 0.0.0.0:* LISTEN 1492/smbd
4. 客户端的连接测试
5. 错误的解决与查询日志文件
一般来说,如果Linux上面的服务出现问题,通常会在屏幕上面直接提示错误的原因为何,所以你要注意屏幕信息。如果还不能处理,可以参考下面的方法来发现错误的原因:
- 先看看相关日志文件有没有错误信息。
- 将信息带入Google查询,通常可以解决日志中出现的但是你没有办法解决的问题
- 如果还是不成功,那就去各大讨论区发问吧。
- 最常出现的其实是SELinux的错误
结果上面的流程可知,搭建好一台主机需要知道:
- 各个process与signal的观念
- 账号与组的概念与相关性
- 文件与目录的权限,这当前包含与账号的相关性
- 软件管理的学习;
- Bash的语法与Shell Script的语法,还有很重要的vim;
- 开机的流程分析,以及日志文件的设置与分析
- 还要知道类似Quota以及文件系统连接等的概念。