Samba服务器:windows与linux文件共享
SMB(Server Message Block)协议是一种客户端服务器协议,位于应用层,是windows共享文件和打印服务的标准化协议。
安装Samba服务
1、在可以联网的机器上使用yum工具安装,如果未联网,则挂载系统光盘进行安装。
# yum install samba samba-client samba-swat
有依赖关系的包samba-common、samba-winbind-clients、libsmbclient将自动安装上去。
2、查看安装状况
3、安装包说明
samba-common-3.5.10-125.el6.x86_64 //主要提供samba服务器的设置文件与设置文件语法检验程序testparm
samba-client-3.5.10-125.el6.x86_64 //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
samba-swat-3.5.10-125.el6.x86_64 //基于https协议的samba服务器web配置界面
samba-3.5.10-125.el6.x86_64 //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项
Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的启动/关闭文件。
4、启动Samba服务器
可以通过/etc/init.d/smb start/stop/restart /etc/init.d/smb start/stop/restart来启动、关闭、重启
5、查看samba的服务启动情况
# service smb status
6、设置开机自启动
# chkconfig smb on
# chkconfig --list | grep smb
确认系统中是否已经安装了samba:
rpm -q samba
rpm -qa | grep samba
启动服务:/etc/rc.d/init.d/smb start
ps -le | grep smbd
ps -le | grep nmbd
开机自启动:echo "/etc/rc.d/init.d/smb start">>/etc/rc.d/rc.local
smbd监听139TCP端口,是samba的核心启动服务,负责用户验证和文件共享,主要负责建立Linux Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问。
nmbd监听137和138UDP端口,负责解析用的,类似于DNS实现的功能,nmb可以把Linux系统共享的工作组名称与其ip对应起来,如果nmb服务没有启动,就只能通过ip来访问共享文件。
例如,某台Samba服务器的IP地址为10.0.0.163,对应的工作组名称为davidsamba,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。
\10.0.0.163共享目录名称
\davidsamba共享目录名称
Samba服务器可实现如下功能:WINS和DIS服务;网络浏览服务;Linux和Windows域之间的认证和授权;UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。
samba配置文件:/etc/samba/smb.conf
包括四个设置段
[global] 设置全局环境选项
[homes] 设置用户宿主目录共享
[printers] 设置打印机共享
[sharefiles] 设置文件共享
寻找samba配置文件所在目录:rpm -ql samba-common | grep smb.conf
备份配置文件:cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
修改配置文件:vi /etc/samba/smb.conf
不看#开始的行:grep -v "^#" /etc/samba/smb.conf | more
删除文件中#开始的行:grep -v "^#" /etc/samba/smb.conf > /etc/samba/smb.conf
去除log file前的注释符:log file=/var/log/samba/%m.log
映射网络驱动器:
工具->映射网络驱动器......
\192.161.16.217htdocs
应用实例一:
允许用户通过windows客户端访问自己的宿主目录
1、安装samba,不需要对配置文件做修改,即可实现此功能
如果安装启用了SELinux,需要先执行:setsebool -P samba_enable_home_dirs on
2、设置用户samba验证密码
smbpasswd -a 用户名
smbpasswd -a root 系统提示输入密码
smbpasswd -a yangbo 系统提示输入密码
3、启动samba服务
/etc/rc.d/init.d/smb start
查看进程:pgrep nmbd pgrep smbd
列出selinux的samba相关选项:gesebool -a | grep samba
windows上断开samba连接,关掉所有共享文件和目录时,在cmd中执行 net use * /delete /y
应用实例二:
设置samba共享目录/software,允许用户jack与mary可以通过windows客户端访问,并具有读写权限。
1、创建目录/software,添加用户jack与mary
mkdir /software
useradd jack
useradd mary
passwd jack
passwd mary
2、如果安装了SELinux,执行命令启动用户可访问系统目录:
chcon -t samba_share_t 共享目录
3、在samba配置文件/etc/samba/smb.conf末尾添加:
vi /etc/samba/smb.confd
[software]
path = /software
valid users = jack mary
writable = yes
4、设置用户jack、mary的samba验证密码,启动samba服务(服务若已启动,不需重启)。
smbpasswd -a jack
smbpasswd -a mary
重启服务:/etc/rc.d/init.d/smb restart
用户的写权限是下面两条的交集
1)samba是否授予写权限
writable = yes
2)用户在linux系统中是否对共享目录有写权限
groupadd softadm
usermod -G softadm jack
usermod -G softadm mary
chgrp softadm /software
chmod g+w /software
samba服务器检查命令
测试语法错误:# testparm
应用实例三:
建立一个公共的只读目录/public,所有人都可以浏览目录的内容
[public]
comment=Read Only Public
path=/public
writable=no
应用实例四:
建立部门资料共享目录/hr,部门每个人都能读写,但不能删除别人的文件。
[hr]
path = /hr
valid users = zhangsan lisi wangwu
writable = yes