RedHat Linux 9.0 下 Samba研究心得
1.安装samba
首先验证您的机器中是否已经安装samba
rpm -qa|grep samba,如果出现
samba-common-2.2.7a-7.9.0
samba-client-2.2.7a-7.9.0
samba-2.2.7a-7.9.0
那么恭喜你,你已经安装好了samba,如果没有以上那些东东,请安装,安装方法很简单,RedHat
linux 9.0第一张光盘里就有//cdrom/RedHat/RPMS/
以下是我的详细安装过程
把第一张光盘放进光驱,他会自动挂接的,省得自己动手mount了
#cd /mnt/cdrom/RedHat/RPMS(主意大小写字母,否则会出错的啊)
#rpm -ivh samba-common-2.2.7a-7.9.0 (这个要先安装,安装的时候不一定要把后面的samba-common-2.2.7a-7.9.0全部写完,比如写到samba-c的时候,多按几次Tab键,很省事的哦)
#rpm -ivh samba-2.2.7a-7.9.0
#rpm -ivh samba-client-2.2.7a-7.9.0(客户端)
安装了以上的东西之后,基本上就可以了,但为了配置的方便以及利用REDHAT LINUX9.0新特性,我建议在安装以下两个东东redhat-config-samba-1.0.4-1,samba-swat-2.2.7a- 7.9.0光盘里都有,其中redhat-config-samba-1.0.4-1在第一张光盘里,samba-swat-2.2.7a-7.9.0在第二张光盘里,安装方法和上面的一样了.
通过上面的简单介绍,我想你已经安装好了,试验一下
#rpm -qa|grep samba(这是什么含义应该知道吧,如果不知道,建议先学学LINUX的基本命令)
redhat-config-samba-1.0.4-1
samba-common-2.2.7a-7.9.0
samba-client-2.2.7a-7.9.0
samba-swat-2.2.7a-7.9.0
samba-2.2.7a-7.9.0
OK,安装成功!(建议,以上东西最好自己安装一次,系统上如果装的有,还是先卸载,这样,才能加深印象,如果卸载以后,安装出问题,可能是你没有完全卸载,解决方法要不继续查找卸载,要不强制安装)
2.配置
(1)方法1
利用我们安装的redhat-config-samba-1.0.4-1进行配置,方法如下:
开始--->系统设置--->服务器配置--->samba服务器
(我是在LINUX写这个文章,所以图形的东西我不会剪切,只好用简单的说一下了)
首选项-->服务器设置,这里你可以对samba服务器进行一些基本的设置里,应该说比较简单了,我看没有必要介绍了,配置好之后,记住重新启动服务.
重新启动的方法有两种:
#service smb start或restart
#/etc/rc.d/init.d/smb start
(2)方法2
利用samba-swat-2.2.7a-7.9.0
首先,你要修改swat的配置文件,默认的情况下是关闭的
service swat
{
port = 901 (swat用到的端口是901)
socket_type = stream(类似tcp协议的东西,呵呵这是我自己的理解)
wait = no
only_from = 127.0.0.1(只从这个启动swat,关键!)
user = root(启动swat用到的名子)
server = /usr/sbin/swat
log_on_failure += USERID
disable = yes (一定要把yes改成no)
}
修改过之后,启动xinetd就可以了
启动方法跟刚才我说的一样
然后在浏览器里些上:http://127.0.0.1:901/重重的按回车,你发现你成功了 !(注意,这个IP地址要跟你在SWAT配置文件里的IP地址一样才形,切记!)
至于如何使用swat,自己摸索一下应该不成问题了,配置完成以后,记得重新启动服务就可以了.对了,为了使得samba和swat在每次开机的时候启动,你可以这样:
#setup,然后找到system service,在SMB和SWAT前搞个*,也可以#ntsysv,同样的效果.
(3)方法3
利用samba-2.2.7a-7.9.0,这是最根本的东西,不管用什么工具,掌握其原理才是最重要的,像网页制作一样,虽然工具很多,但一定要熟悉HTML语言,才能编的好的网页(扯蛋!呵呵)
装好samba-2.2.7a-7.9.0之后,会在/etc/samba/下形成己个文件
smb.conf smbpasswd smbusers lmhosts,如果没有其中的一个,你可以touch创建
修改smb.conf文件
我只做简单的说明:guest ok 和public是一样的,read only 和writable是相反的,没什么区别
workgroup=(工作组名子,填上你目前的LAN的工作组)
netbios=(最好是你的机器名,如果把改句注消,默认的是你LINUX机器名,不过,最好还是自己填上)
client code page=936(默认是850,936是简体中文的意思,这个要记住,难道不记得你mount你windows系统下的中文名子都是???,就是因为你没有加-o iocharset=cp936的原因!)
guest account=nobody(guest帐号,这于你定义的共享文件颊有关,其中nobody在smbusers里有)
security = SHARE(有四个级别,不多说)
encrypt passwords = Yes(加密的密码, win98/2000传送的密码都是加密的,所以这里要yes)
以上都是[global]的内容,其实,很多呢,水平有限不多说了.
下面就是你要开的共享的东西,要说明的是,文件夹共享的属性取决于该文件颊在LINUX里的权限设定
[myxfc]
comment = myxinfc
path = /home/xinfc
read only = No
guest ok = Yes
[tmp]
path = /home
valid users = hehl
write list = @staff
read only = No
guest ok = Yes
共享的设定其实很简单,主要是路径和权限的问题,这两个搞清楚了 ,应该没问题了
该介绍的我都介绍完了,重新启动服务!
或许您会发现客户端无法连接,***,真让人生气,忙了这么久,还是不能访问,why?
1)客户端应安装tcp/ip netbios ipx(这个东东不太懂)
2lmhosts, IP地址和netbios名子对应.
3)iptables(这个东西最坏,就是因为他,我浪费了两天时间!我得出一个小小的结论,做各种配置前把iptables给关闭!)
由于我对iptables不太懂,我的解决方式有两种:
1:#setup 然后选择防火墙,然后关闭
2.修改/etc/sysconfig/iptables
-A INPUT -j RH-Lokkit-0-50-INPUT
-A FORWARD -j RH-Lokkit-0-50-INPUT
-A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2049 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 0:1023 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT
COMMIT
把0:1023的两行的REJECT改成ACCEPT
重新启动防火墙就可以了
#service iptables start
---------------------------------------------------
Samba smb.conf 文件配置
workgroup = MYGROUP
//此项表示在Windows操作系统中的“网上邻居”将会出现的SAMBA服务器所属群组,默认MYGROUP,不区分大小写。
server string = Samba Server
//此项表示在Windows客户端启动SAMBA服务器的内容窗口后,所显示的说明。
; hosts allow = 192.168.1. 192.168.2. 127.
//此项在默然情况下的配置下不使用,它可以用来设置局域网中容许访问SAMBA服务器的主机、子网或者是网域。如果超过一个必须用逗号隔开。
例子:
hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
表示容许来自172.17.2.0子网中的所有主机连接
hosts allow=M1,M2
表示容许来自M1和M2两台计算机连接
hosts allow=@xq
表示容许来自XQ网域的所有计算机连接
printcap name = /etc/printcap
//此项是用来设置开机时自动加载的打印机配置文件名称和路径
load printers = yes
//表示是否容许打印机中的所有打印机,在开机时自动加载浏览列表,以支持客户端的浏览功能
printing = cups
//此项用来指定打印系统的类型
; guest account = pcguest
//此项默认不使用,它是用来设置Guest帐号名
log file = /var/log/samba/%m.log
//此项可为所有连接到SAMBA服务器的计算机建立个别的记录日志
max log size = 0
//此项可以设置每个记录日志大小的上限,单位是KB
security = user
//指定SAMBA服务器使用的安全性等级
; password server = <NT-Server-Name>
//此项功能在默认的配置下不使用,而且只有在上个选项设置为“security=server”时才生效,它是用来指定密码服务的名称,所以要使用NETBIOS名称,也可以使用“password server=*”的方式来自动寻找可用的域控制器
; password level = 8
//这个选项是为了避免SAMBA服务器和客户端之间容许密码大写位数不同而产生的错误
; username level = 8
//这个选项是为了避免SAMBA服务器和客户端之间容许帐号大写位数不同而产生的错误
encrypt passwords = yes
//此项表示是否指定用户密码以加密的形态发送到SAMBA服务器
smb passwd file = /etc/samba/smbpasswd
//SAMBA服务器使用的密码文件路径
; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt
//它用来指定包含所有受信任CA名称的文件
unix password sync = Yes
// 此项是用来把SAMBA密码文件中的加密内容修改时,可以使用此选项进行同步
passwd program = /usr/bin/passwd %u
//此项用来指定设置UNIX帐号密码的程序,其中%U表示用户名称
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
//此项用来设置用户在进行Linux密码转换成SAMBA服务器密码时,屏幕出现的指示字符串,以及与用户产生交互窗口
pam password change = yes
//此项表示可以使用PAM来修改SMB客户端的密码,而不使用“passwd program”选项中指定的程序
; username map = /etc/samba/smbusers
//此选项指定一个配置文件,在此文件中包含客户端与服务端上的用户对应数据
; include = /etc/samba/smb.conf.%m
//此选项容许SAMBA服务器使用其他的配置文件
; obey pam restrictions = yes
//此项可以决定是否采用PAM帐号及会话管理的指令
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
//这个选项在编写TCP/IP程序时相当重要,因为可以借此调整SAMBA服务器运行时的效率
; interfaces = 192.168.12.2/24 192.168.13.2/24
//此项可以使SAMBA服务器监视多个往来接口,如果服务器上有多张网卡应该配置此项
在配置时可以写成:
interfaces =eth0
interfaces =172.17.4.150
; remote announce = 192.168.1.255 192.168.2.44
//此项容许NMBD定期公布SAMBA服务器的IP地址和群组名称到远程的网络或主机
#========== Share Definitions ===============
[homes] //用户个日的主目录设置内容
comment = Home Directories //主目录注释
browseable = no //是否容许其他用户浏览个人主目录
writable = yes //是否容许写入个人目录
valid users = %S //容许登陆的用户,%S表示当前登陆的用户
create mode = 0664 //新建文件的默认权限
directory mode = 0775 //新建目录的默认权限
; map to guest = bad user
//当用户输入不正确的帐号和密码时,可以利用“map to guest”选项来设置处理的方式,但是必须把前面的“security”选项设为“user”“server”“domain”
设置项 | 说明 |
user | 拒绝访问 |
server | 如果帐号正确,但密码错误,容许以Guest登陆 |
domain | 如果帐号和密码都错误,还是容许以Guest登陆 |
; [netlogon] //登陆网域时的“netlogon”目录设置内容
; comment = Network Logon Service //主目录注释
; path = /usr/local/samba/lib/netlogon //实际访问资源的本机路径
; guest ok = yes //连接时是否需要密码
; writable = no //是否容许写入此目录
; share modes = no //是否容许目录中的文件在不同的用户之间共享
; [Profiles] //用户配置文件目录设置内容
; path = /usr/local/samba/profiles //实际访问资源的本机路径
; browseable = no //是否容许浏览此主目录
; guest ok = yes //连接时是否需要密码
[printers] //设置打印机环境内容
comment = All Printers //打印机注解
path = /var/spool/samba //打印队列路径
public=yes //是否容许Guest打印
browseable = no //是否容许浏览打印机内的暂时存盘内容
guest ok = no //连接时是否不需要密码
writable = no //是否容许写入此目录