首页 > 代码库 > smba使用环境搭建
smba使用环境搭建
什么是samba?
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
samba可以实现不同操作系统的资源共享
如何创建samba环境:
首先检查机器上是否有samba程序, 如果查找没有则需要安装,我使用的这台测试机是有的,所以不需要安装,如果你的需要安装,参看step2
[root@localhost ~]# rpm -qa |grep samba
samba-winbind-3.6.23-20.el6.x86_64
samba4-libs-4.0.0-64.el6.rc4.x86_64
samba-client-3.6.23-20.el6.x86_64
samba-winbind-clients-3.6.23-20.el6.x86_64
samba-common-3.6.23-20.el6.x86_64
samba-3.6.23-20.el6.x86_64
samba-swat-3.6.23-20.el6.x86_64安装samba
yum install samba samba-client samba-common
修改机器上的samba配置文件,文件的位置如下,建议在修改前,备份一份,以便于出问题时可以恢复到以前,这种备份的思想应该在很多地方都是适合的
[root@localhost samba]# ll
total 16
-rw-r--r-- 1 root root 20 Jul 24 2015 lmhosts
-rw-r--r-- 1 root root 342 Oct 10 2015 smb.conf
-rw-r--r-- 1 root root 342 Oct 19 17:30 smb.conf.bak
-rw-r--r-- 1 root root 97 Oct 10 2015 smbusers
[root@localhost samba]# pwd
/etc/sambasmb.conf配置文件修改说明
global部分:
workgroup 工作组名称(访问服务器的客户端电脑的工作组,注释1)
server string 主机的简易说明,可随意填写
unix charset (Linux服务器上使用的编码,一般来说就是i18n)
doc charset (Windows客户端的编码)
log file 登录档(一般设为默认就可以)
security 安全性参数, 包括(share,user,domain)
share: 不需要设置密码,任何人都可以访问
user: 使用samba服务本身的密码数据库
passdb backend (user密码的数据库)
//参考例子
workgroup= MYGROUP #注释1
serverstring = Samba Server Version %v
unixcharset=utf-8
doccharset=utf-8
logfile = /var/log/samba/log.%m
security= user
passdbbackend = tdbsam
分享资源部分:Share Definitions
[共享名称] 客户端看到的文件夹名称
comment 这个路径的说明
path 共享的Linux文件系统目录
browseable 是否让所有的用户看到
writable 是否可写人
read only 只读
public 默认yes
(writable 和read only 最后出现的为主要设定)
/ //////////////////
[myShare]
comment=myShare‘s share path
path=/usr/package
browseable= yes
writable= yes
public= yes
测试机配置----要共享/usr/local/autotest文件
1 [global]
2 workgroup = WORKGROUP
3 server string = Samba Server %v
4 netbios name = centos
5 force user = autotest
6 security = share
7 map to guest = bad user
8 dns proxy = no
9 #============================ Share Definitions ==============================
10 [sharename]
11 comment = Insert a comment here
12 path = /usr/local/autotest
13 public = yes
14 writable = yes
5. 改变了配置文件后要想知道自己的修改是否正确,可以用testparm进行检查
[root@localhost local]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[sharename]"
WARNING: The security=share option is deprecated
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
netbios name = CENTOS
server string = Samba Server %v
security = SHARE
map to guest = Bad User
dns proxy = No
idmap config * : backend = tdb
force user = autotest
[sharename]
comment = Insert a comment here
path = /usr/local/autotest
read only = No
guest ok = Ye
6. 改变需要共享的文件的属性,使得用户可以有读写的权限
chmod –R 777 /usr/local/autotest
7. 启动samba服务
6.5 6.6的启动方式如下
[root@localhost local]# /etc/init.d/smb start
Starting SMB services: [ OK ]
[root@localhost local]# /etc/init.d/nmb start
Starting NMB services: [ OK ]
[root@localhost local]# service smb status--->查看samba服务状态
smbd (pid 6690) is running...
7.0 及其以上的启动方式如下:
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
8. 跳过防火墙
6.5 6.6方法如下:
[root@localhost local]# service iptables stop
[root@localhost local]# setnforce 0
-bash: setnforce: command not found
[root@localhost local]# setenforce 0
setenforce: SELinux is disabled
7.0及其以上方法如下:
systemctl stop firewalld.service
setenforce 0
9. 检查samba服务的可用性
[root@localhost local]# smbclient -L //192.168.0.85---用匿名方式进行访问,直接输入回车
WARNING: The security=share option is deprecated
Enter root‘s password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-20.el6]
Sharename Type Comment
--------- ---- -------
sharename Disk Insert a comment here
IPC$ IPC IPC Service (Samba Server 3.6.23-20.el6)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-20.el6]
Server Comment
--------- -------
CENTOS Samba Server 3.6.23-20.el6
LOCALHOST localhost server (Samba, Ubuntu)
Workgroup Master
--------- -------
WORKGROUP LOCALHOST
至此,从windows机器就可以访问这台linux机器了
我是在6.6及7.0的两台机器上都进行了samba服务的设置,在6.6的机器上配置很顺利,配置完成后再windows的机器就可以访问了,但是7.0的机器上还遇到了访问时需要输入用户名和密码的问题,该问题的解决方式参照鸟哥的文章,链接如http://linux.vbird.org/linux_server/0370samba.php#server
主要用到了以下命令,自己强制添加了用户名和密码
usradd -G users test
useradd -G users test
echo 1234 | passwd --stdin test
pdbedit -a -u test
smba使用环境搭建