samba服务器是在Linux和UNIX系统上实现信息服务块SMB协议的一个免费软件,由服务端程序构成,在同一个局域网内客户机可以通过该协议可以访问服务器上的共享文件系统,打印机等其他资源,samba最大的功能就是能实现Linux和Windows系统之间的文件共享和打印共享
端口 udp:137 138
??????? tcp:139 445
创建samba共享目录为/var/skills,共享名为csk-share,完成与Windows的文件传输。
安装samba服务 ??
yum -y install samba samba-client
?将端口打开
主配置文件 /ets/samba/smb.conf
里面大概有700多条配置,大多数都是用“#”和”;“注释掉的不用去管(配置文件的内容解析放到最后)
进入到 /etc/samba/smb.conf修改配置文件
#================================ Share Definitions =======================================
[csk-share] //共享名
comment = set //共享说明
path = /var/shills //共享路径
writables = yes //支持写入数据
guest ok = no //拒绝匿名访问
browseable = yes //所有人可见
配置好之后用testparm命令来测试语法的可靠性(要注意的是客户机和服务器的工作组要一致)
?
?建立共享目录,同时将共享的文件权限调整为所用用户可读,可写,可执行,保证在不同的操作系统上能够共享此目录中的文件。
配置好之后我们把服务重启一下
systemctl restart smb
我们这是在Windows(客户机)中输入服务机的ip地址,就可以看到此处要我输入用户名和密码才能登录
我服务端没有设账号,所以我尝试了用root和服务器登录root的密码去登录,我们这里显示用户名和密码错误,是因为客户端访问共享时所使用的账号就是服务端操作系统中真实存在的系统账号,访问samba服务器时登录的密码必须是独立的samba密码,而不是系统密码。
我们这里使用smbpasswd给root用户设立一个samba密码,并将向smbpasswd文件中添加root用户。
?然后回到客户机上用root账号和root的samba密码登录上
#==================================== Global Settings =============================
[global] //全局配置对整个服务器有效
workgroup = WORKGROUP //我们要做的是Windows和Linux共享,所有这里的工作组一定要和Windows的工作组一致 Linux默认的是 “MYGROUP” Windows默认的是 “WORKGROUP”
server string = samba Server Version %n //描述信息
; interfaces = lo oth0 192.168.12.2/24 192.168.13.2/24 //默认所有端口都能访问
; hosts allow = 127. 192.168.12. 192.168.13. //指定某个网段来访问,这里我们注释掉允许所有网段能够访问(类似防火墙)
#---------------------------------- Logging Option------------------------------------
log file = /var/log/samba/log.%m //日志文件(%m代表客户端主机名)
max log size = 0 //设定日志文件的最大容量,这里的预设值0表示不做限制
#---------------------------------- Standalone Server Options ---------------------------
security = user //当客户端来访问samba服务器时,通过user方式来验证
(hare---不需要提供用户名和密码。
user----需要提供用户名和密码,而且身份验证由 samba server 负责。
server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台 samba server作身份验证。
domain--需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证)
下面的基本上用不到
#--------------------------------- Domain Members Options -------------------------------
password server
语法:password server = <IP地址/主机名>;
预设:password server = <NT-Server-Name>;
说明:指定某台服务器(包括windows 和 linux)的密码,作为用户登入时验证的密码。
其他:此项需配合 security = server时,才可设定本参数。
password level
语法:password level = <位数>;
username level = <位数>;
预设:password level = 8
username level
username level = 8
说明:设定用户名和密码的位数,预设为8位字符。
encrypt passwords
语法:encrypt passwords = <yes/no>;
预设:encrypt passwords = yse
说明:设定是否对samba的密码加密。
smb passwd file
语法:smb passwd file = <密码文件>;
预设:smb passwd file = /etc/samba/smbpasswd
说明:设定samba的密码文件。
local master
语法:local master = <yes/no>;
预设:local master = no
说明:设定 samba server 是否要担当LMB角色(LMB负责收集本地网络的Browse List资源),通常无特殊原因设为no
os level
语法:os level = <数字>;
预设:os level = 33
说明:设定 samba server的os level. os level从 0 到 255 . winNT的os level为33, win95/98的os level 是 1 .若要拿samba server 当LMB或DMB则它的os level至少要大于NT的33以上。
domain master
语法:domain master = <yes/no>;
预设:domain master = yes
说明:设定 samba server 是否要担当DMB角色(DMB会负责收集其他子网的Browse List资源),通常无特殊原因设为no
preferred master
语法:preferred master = <yes/no>;
预设:preferred master = yes
说明:设定 samba server 是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no,(同一网段内不可有两个PDC,他们会每5分钟抢主控权一次)
wins support
语法:wins support = <yes/no>;
预设:wins support = yes
说明:设定samba server 是否想网络提供WINS服务,通常无特殊原因设为no。除非所处网络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes,其他 wins support 和 wins server 只能选择一个
wins server
语法:wins server = <IP地址>;
预设:wins server = w.x.y.z
说明:设定samba server 是否要使用别台主机提供的WINS服务,通常无特殊原因设为no。除非所处网络上有一台主机提供WINS服务才要设yes,其他 wins support 和 wins server
例:wins server = 192.168.0.1 表示samba server要使用192.168.0.1提供的WINS服务
其他的配置基本上都注释掉了,我们直接看最后的配置
smbpasswd
-a:向smbpasswd文件中添加用户; -c:指定samba的配置文件; -x:从smbpasswd文件中删除用户; -d:在smbpasswd文件中禁用指定的用户; -e:在smbpasswd文件中激活指定的用户; -n:将指定的用户的密码置空。
|