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):
[root@localhost ~]# yum install samba
[root@localhost ~]# 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的语法正确性。
[root@localhost ~]# 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 启用被禁用的用户
例如:
root@localhost samba]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
[root@localhost 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