samba配置
1、什么是samba
Samba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到。
是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
2. 安装配置samba
1)安装
yum install -y samba samba-client
2)配置文件解说:
配置文件位置:/etc/samba/smb.conf
[global]:定义全局的配置
workgroup用来定义工作组,相信如果您安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的MYGROUP改成WORKGROUP(windows默认的工作组名字)。
Server string:Samba的名称
security = user #这里指定samba的安全等级。关于安全等级有四种:
share:用户不需要账户及密码即可登录samba服务器
user:由提供服务的samba服务器负责检查账户及密码(默认)
server:检查账户及密码的工作由另一台windows或samba服务器负责
domain:指定windows域控制服务器来验证用户的账户及密码。
passdb backend = tdbsam # passdb backend(用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam.
3. samba配置文件
关于smbpasswd 参考文章:
http://blog.yam.com/gavint/article/27397099
http://www.cnblogs.com/linuxbo/p/4290996.html
smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,需要手工创建该文件。
cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd
tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd -a :创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。(注意,使用smbpasswd -a username 这个同样也是tdbsam,并非上面的那种)
pdbedit参数很多,列出几个主要的:
pdbedit -a username:新建Samba账户。
pdbedit -x username:删除Samba账户。
pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit -Lv:列出Samba用户列表详细信息。
pdbedit -c “[D]” -u username:暂停该Samba用户账号。
pdbedit -c “[]” -u username:恢复该Samba用户账号。
ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 “passdb backend = ldapsam:ldap://LDAP Server”
load printers 和 cups options 两个参数用来设置打印机相关。
除了这些参数外,还有几个参数需要你了解:
netbios name = MYSERVER # 设置出现在网上邻居中的主机名
hosts allow = 127. 192.168.12. 192.168.13. 172.16.# 用来设置允许的主机,如果在前面加 ”;” 则表示允许所有主机
log file = /var/log/samba/%m.log #定义samba的日志,这里的%m是上面的netbios name
max log size = 50 # 指定日志的最大容量,单位是K
[homes]:该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。
[printers] 该部分内容设置打印机共享。
4. samba实践一
要求共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读
1)编辑要/etc/samba/smb.conf文件,把[global]部分 MYGROUP 改为WORKGROUP
2)把security = user 改为 security = share (就是所有人都可以访问)
3)在配置文件 末尾处加入一下代码:
[share]
comment = share all
path = /tmp/samba #共享samba这个目录
browseable = yes
public = yes #是否可浏览
writable = no #不可写,只能浏览
用井号(#)或者分号(;)注释掉homes和printers下的代码
4)创建samba目录
[root@mysql ~]# mkdir /tmp/samba
在samba目下创建一个文本文件
[root@mysql ~]# touch /tmp/samba/cheng.txt
5)给samba目录授权
[root@mysql ~]# chmod 777 /tmp/samba/
6)启动samba服务
[root@mysql ~]# /etc/init.d/smb start
7)测试,在Windows中访问
5、Linux访问Samba共享文件
在Linux系统访问需要安装客户端测试
yum install -y samba-client
1)匿名访问格式
smbclient //IP/共享名称 -U用户名
匿名访问不需要加-U
[root@chenglinux ~]#smbclient //192.168.21.97/share Enter root's password: #这里提示输入密码,不用管直接回车就可以 Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-14.el6_6] Server not using user level security and no password supplied. smb: \> ls . D 0 Sun Jun 28 10:45:00 2015 .. D 0 Sun Jun 28 10:52:38 2015 CT1AUF~P 0 Sun Jun 28 11:59:52 2015 cheng.txt 0 Sun Jun 28 10:45:00 2015 40061blocks of size 524288. 33356 blocks available
2)在Linux系统下挂载samba
需要安装cifs-utils库
yum install -y cifs-utils
挂载
[root@chenglinux ~]#mount -t cifs //192.168.21.97/share /mnt/ Password: #这里提示输入密码,直接回车就可以了
是用df -h查看挂载状况
6、实践二
要求匿名访问,可读可写
1) 修改[share] 中的文件
writable = no修改为 writable = yes
2) 退出保存,然后在重启samba服务
[root@mysql ~]# /etc/init.d/smb restart
3)测试
将以nobody的身份创建文件
7、实验三
要求共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读
1)需要修改/etc/samba/smb.conf配置文件,部分内容修改成如下配置:
修改内容如下:
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
2)把实验一末尾加上的代码可以注释掉,如果没有实验一呢就不用管
3)在配置文件末尾加上以下代码
代码如下:
[myshare]
comment = share for users
path = /samba
browseable = yes
writable = yes
public = no
保存,退出重启samba服务
4)创建Samba目录
[root@mysql ~]# mkdir /samba
5)授权
[root@mysql ~]# chmod 777 /samba/
6)创建系统用户,需要注意的是创建的系统用户可以登录samba服务的共享
创建系统用户a和b
[root@mysql ~]# useradd a
[root@mysql ~]# useradd b
7)添加用户a为Samba账号。需要注意的是在[globa]中,“passwd backend = tdbsam”,所以这里也要只是用
pdbedit来增加用户
[root@mysql ~]#pdbedit -a a new password: #这是是输入登录samba的密码,不是系统密码 retype new password: Unix username: a NT username: Account Flags: [U ] User SID: S-1-5-21-741379161-325660159-305581886-1000 Primary Group SID: S-1-5-21-741379161-325660159-305581886-513 Full Name: Home Directory: \\mysql\a HomeDir Drive: Logon Script: Profile Path: \\mysql\a\profile Domain: MYSQL Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: 三, 06 2月 2036 23:06:39 CST Kickoff time: 三, 06 2月 2036 23:06:39 CST Password last set: 日, 28 6月 2015 13:29:02 CST Password can change: 日, 28 6月 2015 13:29:02 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
8)重启samba服务
[root@mysql ~]# /etc/init.d/smb restart
9)登录
Linux系统:
[root@chenglinux ~]# smbclient //192.168.21.97/myshare -U a Enter a's password: #这提示输入密码了 Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-14.el6_6] smb: \> ls . D 0 Sun Jun 28 13:22:44 2015 .. DR 0 Sun Jun 28 13:22:44 2015 40061 blocks of size 524288. 33356 blocks available smb: \>
在Windows上测试也成功
笔记有错误的地方还请大神指正,小白会继续修改