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 挂载完后就可以像使用本地的目录一样使用共享的目录了,注意共享名后面不能有斜杠。*/