SambaServer基本配置汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Redhat Enterprise Linux 6.2 samba服务配置
一,虚拟机打开后,添加rehl-server-6.2镜像文件
第一步,
第二步:
一、安装前准备
1、使用Samba服务器需要防火墙开放以下端口
UDP 137 UDP 138 TCP 139 TCP 445
#配置防火墙端口
[root@roothomes ~] vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
#重启防火墙,使规则生效
[root@roothomes ~] /etc/rc.d/init.d/iptables restart
2、关闭CentOS6系统的 SELinux
[root@roothomes ~] vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
#:wq 保存。
#重启系统
[root@roothomes ~] shutdown -r now或者 init 6
二、安装Samba
1、检查Samba服务包是否已安装
[root@roothomes ~] rpm -qa | grep samba
samba-3.5.4-68.el6.x86_64
samba-common-3.5.4-68.el6.x86_64
samba-client-3.5.4-68.el6.x86_64
samba4-libs-4.0.0-23.alpha11.el6.x86_64
samba-winbind-clients-3.5.4-68.el6.x86_64
说明samba已经安装,如果没有安装,运行下面命令安装 [root@roothomes ~] yum install samba
2、配置samba
[root@roothomes ~] chkconfig smb on #设置 Samba开机自动启动
[root@roothomes ~] service smb start #启动Samba服务
[root@roothomes ~] /etc/init.d/smb restart #重启
[root@roothomes ~] /etc/init.d/smb stop #停止
[root@roothomes ~] cp
/etc/samba/smb.conf /etc/samba/bak_smb.conf_bak #备份
[root@roothomes ~] cp
/etc/samba/bak_smb.conf_bak /etc/samba/smb.conf #恢复
[root@roothomes ~] vi /etc/samba/smb.conf
[global] #找到这一行(全局设置标签),在此行下面添加如下行:
workgroup = WORKGROUP #工作组名称改为 Windows
网络所定义的工作组名
server string = Samba Server #设置samba服务器的主机名称
security = user #设置samba服务器安全级别为user,即以账号和口令访问
netbios name = SambaServer #设置Samba服务器访问别名
#在配置文件的末尾添加以下自定义内容
[SambaServer] #在Windows网上邻居中看到的共享目录的名字
comment = SambaServer #在Windows网上邻居中看到的共享目录的备注信息
path = /home/SambaServer #共享目录在系统中的位置
public = no #不公开目录
writable = yes #共享目录可以读写
valid users=SambaServer #只允许SambaServer用户访问
#保存配置
3、添加访问linux共享目录的账号SambaServer
用户家目录为/home/SambaServer, 用户登录终端设为/bin/false(即使之不能登录系统)
[root@roothomes ~] mkdir -p /home/SambaServer #建立SambaServer文件夹[root@roothomes ~] cd /home/SambaServer
[root@roothomes ~] touch samba.txt #创建测试文件samba.txt [root@roothomes ~] useradd SambaServer -d /home/SambaServer -s
/bin/false
[root@roothomes ~] chown SambaServer:SambaServer /home/SambaServer -R
4、将用户SambaServer添加入到Samba用户数据库,并设置登录共享目录的密码为:123456
[root@roothomes ~] smbpasswd -a SambaServer
New SMB password: 输入该用户用于登录Samba的密码
Retype new SMB password: 再次确认输入该密码
Added user SambaServer.
#备注:这里设置的密码是SambaServer用户登录该机的Samba共享的密码,非登陆OS的密码;
5、重启Samba服务器
[root@roothomes ~] /etc/init.d/smb restart
6、浏览共享信息
在Windows客户端输入 \\ip 或者 \\SambaServer #服务器别名回车之后,会跳出来登录框,输入账号SambaServer ,密码123456 , 即可访问共享目录
问题:
如果无法访问共享目录的内容,请把防火墙停止;
[root@roothomes ~] service iptables stop
二
1、安装Samba软件包
# yum -y install samba samba-client samba-common samba-winbind samba-winbind-clients
2、启动、查看Samba服务器状态
# service smb start
# service smb status
3、设置Samba服务器为开机启动
# chkconfig smb on
# chkconfig --list smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4、修改 Samba 服务器住配置文件 smb.conf
4.1、备份源文件
# cp -p /etc/samba/smb.conf /etc/samba/smb.conf.orig
4.2、在 [global] 部分修改字符集设置
[global]
unix charset= UTF-8
dos charset=GBK
workgroup = SHAREGROUP
4.3、在文件结尾加上客户自定义共享模块
[share]
comment = RHEL6-Windows Share
path=/home/share
writeable = yes
# 是否可写
browseable = yes
# 是否可浏览
create mode = 0777
# 创建文件时的默认属性
directory mode = 0777
# 创建目录时的默认属性
valid users = share
# 指定可访问用户
5、添加共享用户
# groupadd -g 1234 share-users
# adduser -d /home/share -m -u 1234 -g 1234 -c "Samba demo user accnt" share
# ls -ld /home/share
drwx------. 4 share share-users 4096 11月 28 16:56 /home/share
6、映射刚添加的用户为同名的 samba 用户,并设置samba密码(这个密码不同于系统用户密码!!)
# smbpasswd -a share
New SMB password:
Retype new SMB password:
Added user demo.
#
修改Samba用户信息使用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用户的账号
修改Samba用户share的密码:
smbpasswd share #必须先添加Linux用户到Samba用户
7、检测配置参数
# testparm
8、配置 SELinux Security 参数
8.1、/etc/selinux/config
SELINUX=enforcing
8.2、设置文件夹及其内容的安全属性
# semanage fcontext -a -t samba_share_t "/home/share(/.*)?"
# restorecon -R -v /home/share
PS:如果 semanage 命令不存在,可以使用这个命令 # yum -y install policycoreutils-python 安装
8.3、在防火墙上开启 Samba 和 Samba-client 服务端口
9、重启 Samba 服务器
service smb restart
PS:WINDOWS机器需要注销重新登录,才可以注销原有的用户信息,登录Samba 服务共享
CentOS6.3 Samba安装配置、多用户、加域
时间:2013年8月23日
系统:CentOS release 6.3 (Final)x86_64
硬件:DELL R420、DELL 1950
说明:域环境下的Samba
工作组环境下的Samba
要求:各个部门只对自己部门的share有读写权限,所有人对共有share都有读权限,特定的人对共有share有读写权限
说明:这其实是两台服务器,一台是工作组环境下的,一台是域环境下的,工作组是客户公司的项目组用的,域环境下的是客户公司用的
以下的全部过程均在虚拟机以及实际项目中实施,确定可以正确运行
第一步:安装相关组件
yum install samba4* krb5* -y
samba4是什么就不用说了,krb5是为了以后将samba加入AD域而需要用到
KRB(Kerberos协议)主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。
由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
第二步:创建共享目录
mkdir /home/share -m 1777
mkdir /home/project -m 1777
mkdir /home/projectmgr -m 1777
mkdir /home/filemgr -m 1777
目录的权限根据自己的需求进行设定,因为这个是根据用户要求也就直接设置为1777
-从这开始是为工作组环境建立的Samba-
第三步:建立组及用户
1、创建组
groupadd mgr//建立mgr组
groupadd periphery//建立Periphery组
groupadd filemgr//建立filemgr组
2、建立用户并加入组
useradd itadmin -s /sbin/nologin -M//创建一个IT管理员,这个不加入组,这只是samba访问用户,所以不用登录系统,也没创建用户的家目录
useradd jason -g project -s /sbin/nologin -M//创建用户jason并将他加入project 组
useradd alix -g projectmgr -s /sbin/nologin -M//创建用户alix并将他加入projectmgr 组
useradd lili -g filemgr -s /sbin/nologin -M//创建用户lili并将她加入filemgr 组
注:如果是之前己创建过的用户可以用
usermod -g mgr lou//将己存在的用户lou加入mgr组
第四步:配置smb.conf
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak//备份一下samba的配置文
件,
vim /etc/samba/smb.conf
下面绿色字体为原有的,粟色字体的为增加的,蓝色字体为修改的
#================== Global Settings =====================
[global]
dos charset = GB2312
unix charset = GB2312
display charset = GB2312
# ----------------------- Network Related Options ------------------------- workgroup = MYGROUP --改为--> WORKGROUP //指定机器在网络上所属的NT域名或组名(可改可不改)
server string = Samba Server Version %v//此选项是可选的,主要作用是Samba服务Windows系统注释
netbios name = MYSAMBA//这个改不改随意,它就象windows里的机器名interfaces = lo eth0192.168.88.35/24//这里写本机IP地址,如果有多个网络也可以写多个IP
hosts allow = 127.192.168.88.//设定允许访问samba的IP地址或IP地址范围
wins support = yes//设定samba提供WINS服务,通常无特殊原因设为no,除非所处网络上没有主机提供WINS服务且需要samba提供WINS服务是才设yes
dns proxy = yes --改为--> no
name resolve order = wins host lmhosts bcas
bind interfaces only = yes
# --------------------------- Logging Options -----------------------------
log file = /var/log/samba/log.%m// log会在此目录中为每个登陆用户(Samba
用户)建立不同的日志文件
log level = 2
max log size = 500
# ----------------------- Standalone Server Options
------------------------
security = user//设定安全级别为user
passdb backend = tdbsam --改为--> smbpasswd:/etc/samba/smbpasswd
# --------------------------- Printing Options
-----------------------------
load printers = yes
cups options = raw
#============================ Share Definitions
==============================
#如果注释掉了[homes]则用户就看不到自己的家目录
#[homes]
# comment = Home Directories
# browseable = no
# writable = no
#; valid users = %S
#; valid users = MYDOMAIN\%S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
[share]
comment = Share//定义共享目录名称,可用任意字符串
path = /home/share//设定共享目录路径
public = no//指定该共享是否允许guest账户访问
available = yes//用来指定该共享资源是否可用
admin users = itadmin//指定该共享的管理员,对该共享具有完全控制权限,如果用户验证方式设置成“security=share”时,此项无效。
valid users = +mgr,+periphery,+filemgr//用来指定允许访问该共享资源的用户,单个用户就直接写用户名,组就是“+组名”
writable = yes//是否允许写入,这项对下面的几项来说是首选,这项设置为NO,下面的create mask directory mask 等一系列预设值无效
write list = +mgr,+periphery,+filemgr //指定在该共享下有写入权限的用户create mask= 0755//表示新建文件的预设值,文件所有者全部权限,组内用户及其他用户可读可执行
directory mask= 0755//表示新建目录的预设值,目录所有者全部权限,组内用户及其他用户可读可执行
browseable = no//指定该共享是否可以浏览
[project]
comment = project
path = /home/project
public = no
available = yes
admin users = itadmin
writable = yes
write list = +periphery
valid users = +periphery
create mask= 0755
directory mask= 0755
browseable = no
[projectmgr]
comment = projectmgr
path = /home/projectmgr
public = no
available = yes
admin users = itadmin
writable = yes
write list = +mgr
valid users = +mgr
create mask= 0755
directory mask= 0755
browseable = no
[filemgr]
comment = filemgr
path = /home/filemgr
public = no
available = yes
admin users = itadmin
writable = yes
write list = +filemgr
valid users = +filemgr
create mask= 0755
directory mask= 0755
browseable = no
配置完后通过testparm来检查
说明一点:
samba3.x 的早期版本默认使用tdb库也就是smb.conf默认设定为passdb backend = tdbsam,只需要注释掉该行添加smb passwd file = /etec/samba/smbpasswd即可使用smbpasswd存储加密密钥。
从samba3.5.6开始samba规范了passdb backend参数的使用,取消了smb passwd file设定,如果简单注释掉passdb backend参数,密钥文件也不会被存储到smbpasswd。
所以很多人说怎么修改smb.conf的配置,smbpasswd文件都无法生成,就算手工创建,内容也是0字节。
要用传统的文本方式存储只需这样设定passdb backend
= smbpasswd:/etc/samba/smbpasswd(后面跟的是绝对路径)>,不要再写smb passwd file = /etc/samba/smbpasswd,该参数已经不适用于新版本的samba了。
启动smb及nmb服务
service smb start
service nmb start
nmb 是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;如果不打开nmb 服务器的话,只能通过IP来访问
注意:在Samba服务器运行其间,更改了配置最好用service smb reload命令,不要用restart,这样可以防止用户在连接的过程中被中断
将smb与nmb加入启动服务
chkconfig --level 35 smb on
chkconfig --level 35 nmb on
查看端口
netstat -antup |grep smb
netstat -antup |grep nmb
第五步:设置用户
smbpasswd -a itadmin
New SMB password:
Retype new SMB password:
Added user itadmin.
注:如果想要让/etc/samba/sabpasswd生效,要先启动samba,不然还是以默认的tdbsam 方式来记录密码
删除用户:smbpasswd -x username
更改用户密码:smbpasswd username
第六步:测试用户
linux用户端测试
Smb //192.168.88.35/share -U lili
Enter lili's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.0.0rc4]
Smb: \>ls
. D 0 Sat Aug 24 02:21:22 2013
.. D 0 Sat Aug 24 00:18:49 2013
Windows下测试用户就是在“运行”输入//192.168.88.35/share
这时会弹出一个用户名和密码验证的窗口,输入自己的用户名及密码。