用实验快速学习Samba
前言:在windows和linux的混合网络中,samba还是有很大用处的,本文用实验的方法快
速学习Samba。
[实验项目]
①在linux上建立Samba服务器,用类似FTP的客户端smbclient访问。
②在linux上建立security=user的Samba服务器,用win2000的客户端访问。
③在linux上建立security=share的samba服务器,用win2000的客户端访问。
④在linux上挂载samba共享。
实验一:在linux上建立Samba服务器,用类似FTP的客户端smbclient访问。
[实验要求]
1.两台RH8.0的机器可以互相ping通。
2.机器1的IP:192.168.0.1
3.机器2的IP:192.168.0.2
[实验步骤]
1.关掉两台机的防火墙。
#service iptables stop
#chkconfig iptables off
2.在两台机上安装软件包。
检查samba,samba-common,samba-client包是否已安装。
# rpm -q samba
# rpm -q samba-common
# rpm -q samba-client
根据结果,在安装光盘里找到没有安装的软件包,开始安装。
# rpm -ivh samba*.rpm
3.在机器1开启smb服务,并查看共享了什么内容。
# service smb start
# smbclient -L 192.168.0.1 -N
4.在机器1添加新用户。
# useradd user1
# passwd user1
密码:user1
# touch /home/user1/iAmUser1
5.在机器1创建smb帐户文件文件:/etc/samba/smbpasswd
# touch /etc/samba/smbpasswd
# smbpasswd -a user1
密码:user1
6.在机器1备份原配置文件:/etc/samba/smb.conf
# mv smb.conf smb.conf.BAK
7.在机器1新建配置文件:/etc/samba/smb.conf
# vi /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server
hosts allow = 192.168.0/24
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
security = user
[homes]
comment = %u 's home
browsable = no
public = no
writable = yes
create mode = 0664
directory mode = 0775
--------------------------------------------------------------------
如果你对上述文件熟悉,跳过这段。
[global] [homes] 的[]表示段落,global表示全局,homes表示用户目录共享。
这两个都是特殊的段落。
workgroup 类似windows的工作组。
server string 希望在客户端显示出此服务器的注释,可省。
host allow 指出共享的网段,可省。
encrypt passwords 指出密文密码传输。
smb passwd file 指出密文密码和帐户存放点。
security 服务方式,有四种:user,share,domain,server,必不可少。
comment 注释共享目录的属性。
browsable 是否可浏览。
public 公共共享
writable 是否可写
create mode ,directory mode 指出写的权限。
--------------------------------------------------------------------
8.在机器1用testparm 检查配置文件是否正确。
# testparm /etc/samba/smb.conf 192.168.0.2
# testparm /etc/samba/smb.conf 192.168.1.2
注意:1) 结果报告配置有错误吗?有,仔细检查配置文件哪里错了。
2) 仔细看上面两个命令的结果有何不同?为什么?
9.在机器1重启smb服务。
# service smb restart
10.在机器2上看机器1的samba共享了什么?
# smbclient -L 192.168.0.1 -N
11.在机器2访问机器1的samba服务。
# smbclient //192.68.0.1/homes -U user1%user1
12.在机器2上成功访问后,用help查看命令。
smb: \>help
注意:1) 用ls 看到文件iAmUser1吗?
2) 比较和FTP的命令有何不同。
实验二:在linux上建立security=user的Samba服务器,用win2000的客户端访问。
[实验要求]
1.一台RH8.0机,一台Win2k机,互相能ping通。
2.RH8.0机,IP:192.168.0.1
3.Win2k机,IP:192.168.0.2
[实验步骤]
1.在实验一的基础上,修改/etc/samba/smb.conf
修改[global]段中:
workgroup = WORKGROUP1
----------------------------------------------------------------------
如果你对上述修改熟悉,跳过这段。
workgroup = WORKGROUP1为使linux和windows机在同一个工作组。
----------------------------------------------------------------------
注意:修改了smb.conf,必须运行:service smb restart
2.修改Win2k的工作组,为WORKGROUP1,若为域控制器,必须降为普通工作组,用
Administrator重启登录。
修改方法:“我的电脑”|“属性”|“网络标识”|“属性”
3.在win2k机上,“网络邻居”|“整个网络”|“全部内容”|“microsoft windows 网络”
| “Workgroup1”,看到RH系统的机器了吗?
4.输入用户名user1,密码user1进入,可以新建,删除文件吗?
实验三:在linux上建立security=share的samba服务器,用win2000的客户端访问。
[实验要求]
1.一台RH8.0机,一台Win2k机,互相能ping通。
2.RH8.0机,IP:192.168.0.1
3.Win2k机,IP:192.168.0.2
[实验步骤]
1.在实验二的基础上,修改/etc/samba/smb.conf
追加下面内容:
[public]
comment = public
path = /mnt
browsable = yes
public =yes
修改[global]段中:
security = share
----------------------------------------------------------------------
如果你对上述修改熟悉,跳过这段。
[public]定义了另一段,也可以为其他名称。
path指出共享的目录。
security采用share。
----------------------------------------------------------------------
注意:修改了smb.conf,必须运行:service smb restart
2.在win2k机上,用Administrator登录,“网络邻居”|“整个网络”|“全部内容”|
“microsoft windows 网络”| “Workgroup1”,看到RH系统的机器了吗?
3.不用密码就可以进入了,是吗?你看到几个共享目录?可以写入吗?
4.在win2k机上新建一个帐户:user1,密码:user1。
5.在win2k机上注销,切换用户user1。
6.在win2k机上,“网络邻居”|“整个网络”|“全部内容”|“microsoft windows 网络”
| “Workgroup1”,看到RH系统的机器了吗?
7.不用密码就可以进入了,是吗?你看到几个共享目录?可以写入吗?
注意:1) 当你模仿[homes]段修改了[public]段的writable,create mode ,directory mode
后,可以写入吗?
2) 你修改了RH8.0机的/mnt/读写权限为drwxrwxrwx时,情况怎么样呢?
实验四:在linux上挂载samba共享。
[实验要求]
1.一台RH8.0机,一台Win2k机,互相能ping通。
2.RH8.0机,IP:192.168.0.1
3.Win2k机,IP:192.168.0.2
[实验步骤]
1.在win2k机上,共享C:\
2.在RH8.0机上运行:
# smbclient //192.168.0.2/C -U win2k的当前登陆用户名%密码
注意:能登陆吗?
3.挂载共享盘:
# mount -t smbfs -o username=win2k的当前登陆名%密码
//192.168.0.2/C /mnt/cdrom
注意:1)“username=win2k的当前登陆名%密码” 之间不要有空格。
2) 也可用:# smbmount //192.168.0.2/C /mnt/cdrom -o username=
username=win2k的当前登陆名%密码
3) 也可用:# smbmount //192.168.0.2/C /mnt/cdrom -U
win2k的当前登陆用户名
接着输入密码便可。
4) 实际,两台都是Linux系统,一台作samba服务器,另一台作客户机。如
实验一的情况下,在机器2上:
# mount -t smbfs -o username=user1%user1
//192.168.0.1/homes /mnt/cdrom
也可实现共享,不过没有必要,linux之间,可以用nfs实现共享,而且速度比
Samba快。
[实验小结]
本文只是简单快速的学习Sabma,如果想深入了解,需要结合manpage与原
/etc/samba/smb.conf(已备份为smb.conf.BAK)仔细研究,另外,/usr/share/doc/samba
提供了专业文档可以学习。不过,通过本文的学习,已基本满足普通的工作需要。至于
security为domain和server形式,我也没有研究,所以,没有涉及。