samba

SAMBA能够让Linux上共享的文件在Windows上可以被访问,常用的端口是 137,138,139,445

总共有3种方式:
1. 共享出来,谁都可以访问
2. 只有有用户和密码的用户才可以访问
3. 能够在Linux上访问到samba服务器的文件夹

=============================================
samba配置文件 /etc/samba/smb.conf

/* 定义全局的配置 */
[global]
    workgroup = MYGROUP
    server string = Samba Server Version %v
    security = user
/* samba的安全等级有4种: 
    share : 不需要账户及密码就可以登录
    user : samba服务器检查账户或密码
    server: 检查账户密码由另一台Windows或samba服务器负责
    domain : 指定Windows域来控制服务器检查账户或密码
*/
    passdb backend = tdbsam
/* (用户后台)passdb backend
    有三种用户后台:smbpasswd, tdbsam、 ldapsam
    smbpasswd: 使用smb工具smbpasswd给(系统用户或虚拟用户)设置一个samba密码,这样可以通过此密码访问samba资源。
这文件存在/etc/samba中,有时需要手动创建。

    tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb。
   先创建系统用户,useradd user1
然后samba才可创建对应的samba用户,pdbedit -a user1
pdbedit用法

   ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 “passdb backend = ldapsam:ldap://LDAP Server”
*/
    load printers = yes
    cups options = raw
/*
除了这些参数外,还有几个参数需要你了解:

netbios name = MYSERVER # 设置出现在网上邻居中的主机名

hosts allow = 127. 192.168.12. 192.168.13. # 用来设置允许的主机,如果在前面加 ”;” 则表示允许所有主机

log file = /var/log/samba/%m.log #定义samba的日志,这里的%m是上面的netbios name

max log size = 50 # 指定日志的最大容量,单位是K
*/

/* 共享用户自己的家目录 */
[homes]
    comment = Home Directories
    browseable = no 
    writable = yes

/* 设置打印机共享*/
[printers]
    comment = All Printers
    path = /var/spool/samba
    browsable = no
    guest ok = no
    writable = no
    printable = yes
!!!!当在Windows访问samba服务器很慢时,解决方法:

/*
[root@frankie ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@frankie tmp]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=frankie

将hosts里的127.0.0.1 里的servername换成 network文件里的hostname
*/

一、安装samba并配置

[root@localhost ~]# yum install -y samba samba-client

1. 共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读
[root@localhost ~]# vim /etc/samba/smb.conf
...
...
workgroup = MYGROUP  #改为 WORKGROUP
...
...
security = user  #改为 share
...
#在文件最末尾加入
[share]
        comment = share all
        path = /tmp/samba
        browseable = yes
        public = yes
        writable = no
[root@localhost ~]# mkdir /tmp/samba
[root@localhost ~]# chmod 777 /tmp/samba
[root@localhost ~]# touch /tmp/samba/sharefiles
[root@localhost ~]# echo "111" > /tmp/samba/sharefiles
[root@localhost ~]# testparm     //测试你配置的smb.conf是否正确
//警告:WARNING: The security=share option is deprecated, 不过影响不大,无需管它。
[root@localhost ~]# /etc/init.d/smb start 

/*在Windows浏览器 或文件夹地址栏输入*/
file://IP/share

--> 看是否能访问到sharefiles

****无法访问*****(没有权限)
防火墙问题 iptables -F / service iptables stop / vi /etc/selinux/config --> selinux=disabled-->reboot/
***********************
2. 共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写 [root@localhost ~]# vim /etc/samba/smb.conf //global 部分按照以下修改 [global] workgroup = WORKGROUP server string = Samba Server Version %v security = user passdb backend = tdbsam load printers = yes cups options = raw //再在文件最尾部增加 [myshare] comment = share for users path = /samba browseable = yes writable = yes public = no [root@localhost ~]# mkdir /samba [root@localhost ~]# chmod 777 /samba //添加可访问samba共享文件夹的用户,用户必须在系统中存在 [root@localhost ~]# useradd user1 [root@localhost ~]# useradd user2

//为用户添加samba账号 [root@localhost ~]# pdbedit -a user1
new password: //给账号配置密码 [root@localhost
~]# pdbedit -a user2 [root@localhost ~]# pdbedit -L //列出samba所有账号 [root@localhost ~]# service smb restart 测试: 打开IE浏览器输入 or 文件地址栏 file://IP/myshare/ 3. 使用linux访问samba服务器 {要安装samba-client} //用法 :smbclient //IP/共享名 -U 用户名 [root@localhost]# smbclient //10.0.4.67/myshare/ -U user1 Password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: > ls
******这里出现的问题**********
1.tree connect failed: NT_STATUS_ACCESS_DENIED
出现问题的原因:在配置文件的global中设置了security=share,而没有在共享片段里设置public=yes

解决方法: --》

把global中的 security=share删掉

或在共享片段,即[share]/[myshare]中加入public=yes

2.session setup failed: SUCCESS - 0

解决方法: --》

将原本的网络连接:NAT连接 --》 改成桥接模式即可(未实验,不知是否成功)

*****************************
/*常用的有cd, ls, rm, pwd, tar, mkdir, chown, get, put等等,使用 help+ 命令可以打印该命令如何使用,其中get是下载,put是上传。也可使用挂载: mount -t cifs //10.0.4.67/myshare /mnt -o username=user1,password=123456 格式就是这样,要指定 -tcifs//IP/共享名本地挂载点 -o后面跟username 和 password 挂载完后就可以像使用本地的目录一样使用共享的目录了,注意共享名后面不能有斜杠。*/
原文地址:https://www.cnblogs.com/frankielf0921/p/5398329.html