samba服务器搭建
samba服务器搭建
局域网中,windows主机之间通过网络可以访问彼此共享的文件,此时依靠的协议是CIFS(common internet file system);linux主机之间也可以通过NFS共享文件;但windows和linux主机之间不可以直接访问彼此之间的文件。此时需要使用samba,使用samba服务可以使同一网络中的linux和windows相互访问文件,还可以将linux上面的打印机成为打印服务器(printer server)。所以在局域网中samba的功能还是非常强大的。
虽然windows也可以共享打印机,但是linux相对而言更加稳定和安全,所以使用linux共享的打印机更加安全和稳定。
windows主机之所以能在网上邻居里能够看到主机名,是因为使用了NETBIOS协议,此协议实现主机之间名称解析,而samba在创建时,也借助了此协议。
samba安装:
linux系统上默认samba的客户端已经安装:samba-client
通用工具即库文件也已经安装:samba-common
基于web的图形工具:samba-swat
所以想要使用samba只需要安装服务器端的包即可(samba受selinux的控制,所以要关掉selinux):
[[email protected]host ~]# yum install samba [[email protected] ~]# service smb start 启动 SMB 服务: [确定] 启动 NMB 服务: [确定]
samba的两个进程:
nmbd:实现NETBIOS的名称解析功能,利用UDP协议开启137,138端口来进行名称解析。
smbd:实现文件共享,打印机共享等。利用TCP协议进行文件传输,使用139端口和445端口。
/etc/samba/smb.conf:主配置文件,常用选项如下:
[global] //全局配置 workgroup = MYGROUP //定义工作组,要和windows中的工作组一致。 server string = Samba Server Version %v //主机说明,随意定义 ; netbios name = MYSERVER //netbios名称,不同主机设定不同 ...... security = user //常用选项有user和share,当使用user时需要smb passwd file项;当为share时表示不许要密码即可共享。 encrypt passwords = yes //表示密码要加密 smb passwd file = /etc/samba/smbpasswd ...... [homes] //家目录,定义每一个用户通过samba是否可以访问它的家目录 comment = Home Directories //目录说明 browseable = no //除了特殊设置的目录外,其它目录不可见 writable = yes //是否可写 ; valid users = %S //使用者, ; valid users = MYDOMAIN\%S [printers] //打印机段 comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes //自定义段,管理员可定义自己的共享,主配置文件中默认不存在此段。 [NAME] //网络发现里显示的名字,可自己编写 comment = my tools //描述 path = /share //系统*享文件在系统中路径 browseable = yes //是否可浏览 guest ok = yes //是否让来宾账户访问 writeable = yes //是否可写 // write list = gentoo,redhat //定义谁可写
/etc/samba/lmhosts:文件主要是netbios name和对应主机名称的ip,此文件会在安装了samba后自动获得,一般不用配置。
/etc/smaba/smbpasswd:此文件需自己创建,当samba共享需要用户名和密码认证时,使用此文件。应注意此文件属主应为root,权限为600.
常用命令:
testparm:用于查看sbm.conf的语法正确性。
[[email protected] ~]# testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[tmp]" Loaded services file OK. //说明没有问题 Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions //按enter键可查看有效配置
smbstatus:用于查看samba服务器的状态。
smbpasswd:创建帐号和密码。
#smbpasswd -a 将用户加入到samba用户里 -s 从samba中删除某用户,以后此用户不能访问samba了 -d 临时禁用某用户,不能访问samba -e 启用被禁用的用户
例如:
[email protected] samba]# smbpasswd -a user1 New SMB password: Retype new SMB password: Added user user1. [[email protected] samba]# cat smbpasswd user1:500:FC26CDB2863917C1AAD3B435B51404EE:00B2C85DDFBD8CC81602D6FC7340EB0B:[U ]:LCT-51A269B7:
smbclient:查看某主机的samba共享
#smbclient -L HOSTNAME/IP 可以查看此主机的samba共享 #smbclient -L HOSTNAME/IP -U username 以某个用户身份查看此主机的samba共享
smbmount:可以将windows主机共享的文件挂载到linux主机上,使用mount命令也可挂载,但是必须指定挂载方式为cifs,指定用户使用-o username=redhat:
#mount -t cifs //192.168.0.20/tmp /mnt -o username=user1
可以在windows主机*问linux主机共享,此时提示需输入用户名和密码:
输入user1和密码后可访问linux主机上共享:
至此一个简单的samba服务器搭建完成。
扩展:
安装基于web的图形工具,用于samba的管理配置,默认使用901端口:
#yum install samba-swat
配置文件在/etc/xinetd.d/swat
only_from = 192.168.0.0/24 允许谁访问 disable = no //不禁用此功能
然后重启xinetd:
#service xinetd restart
然后在浏览器上输入:192.168.0.20:901 即可访问,注意登录时使用root用户的密码。
转载于:https://blog.51cto.com/asange/1225439