1.1 安装
Samba是能够在任何支持SMB协议的主机之间实现文件共享的软件,由服务器及客户端程序构成。
安装
# yum install samba // centos
# apt-get install samba // ubuntu
查看版本
# smbd -V
1.2 配置
- 配置说明
1、 配置文件路径:/etc/samba/smb.conf。
2、 配置文件分为两大类,全局设置参数与文件共享设置参数。
3、 root目录下的共享文件夹,需要客户端使用root用户登录才行。
- 全局参数说明
[global]
# 可以使用另一个配置文件来覆盖缺省的配置文件。如果文件不存在,则该项无效
config file = /etc/samba/smb.conf.%U
# 设定 Samba Server 所要加入的工作组或者域
workgroup = WORKGROUP
# 设定 Samba Server 的注释
server string = Samba Server Version %v
# 设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址
interfaces = lo eth0 192.168. 12.2/24 192.168. 13.2/24
# 表示允许连接到Samba Server的客户端,多个参数以空格隔开
hosts allow = 127. 192.168.1. 192.168. 10.1
# 指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制
max connections = 0
# 设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接
deadtime = 0
# 设置让nmdb成为windows客户端的时间服务器
time server = yes/no
# 设置Samba Server日志文件的存储位置以及日志文件名称
log file = /var/log/samba/log.%m
# 设置Samba Server日志文件的最大容量,单位为kB,0代表不限制(默认)
max log size = 50
# 设置用户访问Samba Server的验证方式,一共有四种验证方式
# 1. share:不需要提供用户名和密码。
# 2. user:默认,需要提供用户名和密码,而且身份验证由 samba server 负责。
# 3. server:需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台 samba server作身份验证。
# 4. domain:需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证。
security = user
# 设置用户后台,目前有三种后台:smbpasswd、tdbsam和ldapsam
# 1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下
# 2.tdbsam: 该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库 可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户
# 3.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户
passdb backend = tdbsam
# 是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。
encrypt passwords = yes/no
# 定义samba用户的密码文件
smb passwd file = /etc/samba/smbpasswd
# 定义用户名映射,比如可以将root换成administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯
username map = /etc/samba/smbusers
# 设置guest用户名
guest account = nobody
- 共享参数说明
[共享名]
# 对该共享的描述,可以是任意字符串。
comment = 任意字符串
# 指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes] 共享域。
path = 共享目录路径
# 指定该共享是否可以浏览。
browseable = yes/no
# 指定该共享路径是否可写。
writable = yes/no
# 指定该共享资源是否可用。
available = yes/no
# 指定该共享的管理员(对该共享具有完全控制权限)。
# 在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
# 多个用户中间用逗号隔开。
admin users = 该共享的管理者
# 指定允许访问该共享资源的用户。
# 多个用户或者组中间用逗号隔开,如果要加入一个组就用“@组名”表示。
valid users = 允许访问该共享的用户
# 指定不允许访问该共享资源的用户。
# 多个用户或者组中间用逗号隔开。
invalid users = 禁止访问该共享的用户
# 指定可以在该共享下写入文件的用户。
write list = 允许写入该共享的用户
# 指定该共享是否允许guest账户访问。
public = yes/no
# 意义同“public”。
guest ok = yes/no
- 配置文件示例
# vim /etc/samba/smb.conf
[global]
log file = /var/log/samba/log.%m
map to guest = Bad User
passdb backend = smbpasswd
security = USER
server string = Samba Server Version %v
smb passwd file = /etc/samba/smbpasswd
username map = /etc/samba/smbusers
idmap config * : backend = tdb
hosts allow = 10.10. 20.20.
[smbDir]
comment = this is smb test
path = /mnt/smbDir
browseable = yes
writable = yes
write list = david,@dave
1.3 常用命令
# systemctl start smb // 启动
# systemctl stop smb // 停止
# systemctl enable smb // 开机启动
# systemctl reload smb // 重新加载配置
# smbpasswd -a samba1 // 创建smb用户及密码
# smbpasswd -x samba1 // 删除smb用户
# pdbedit -L // 查看所有smb用户