linux samba安装与配置

来源:互联网 发布:阿里云服务器学生优惠 编辑:程序博客网 时间:2024/06/06 00:45

为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两中不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大的方便,本章将以Redhat 5为例,简要介绍如何在Linux操作系统上搭建Samba服务器,本章只对Samba的安装及配置过程进行简要讲解。

1. 服务查询

    默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分,为了让大家对整个过程有一个完整的了解,在此先将这部分卸载掉。可以在“/”下输入命令rpm –qa samba*,或者rpm –qa |grep samba,默认情况下可以查到两个已经存在的包:

samba-client-3.0.33-3.7.el5

samba-common-3.0.33-3.7.el5

用rpm –e将两个包卸载掉。对于samba-common-3.0.33-3.7.el5,因为与其它rpm包之间存在依赖关系,所以必须加参数-f和--nodeps,-f是指强制,--nodeps是指不检查依赖关系,具体完整命令为rpm –e –f –nodeps samba-common-3.0.33-3.7.el5,这样可以将此包顺利卸载。

2. 安装Samba

a) 挂载系统安装盘

使用命令mount /dev/cdrom /mnt/cdrom完成系统安装盘的挂载,完成之后进入/mnt/cdrom/Server,使用命令find samba*查询和samba服务相关的rpm包,可以查到如下4条记录:

[root@localhost /]# rpm -qa |grep samba

samba-client-3.0.33-3.7.el5

samba-3.0.33-3.7.el5

samba-common-3.0.33-3.7.el5

samba-swat-3.0.33-3.7.el5

samba-3.0.33-3.7.el5.i386.rpm:为Samba服务的主程序包。后面的数字为此包的版本号,要搭建Samba服务器,必须安装此软件包;

samba-client-3.0.33-3.7.el5.i386.rpm:为连接服务器和连接网上邻居的客户端的Samba客户端工具;

samba-common-3.0.33-3.7.el5.i386.rpm:存放通用的工具和库文件,通常此包必须安装;

samba-swat-3.0.33-3.7.el5.i386.rpm:为服务器图形化管理工具,此包安装完成之后,用户可以通过IE或其它浏览器来对Samba服务器进行图形化管理。

b) 安装Samba服务包

对于上面查询出来的4个Samba服务安装包进行逐一安装。如果直接用rpm –ivh安装samba-3.0.33-3.7.el5.i386.rpm包,将会报错,提示如下:

[root@localhost Server]# rpm -ivh samba-3.0.33-3.7.el5.i386.rpm

warning: samba-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

error: Failed dependencies:

perl(Convert::ASN1) is needed by samba-3.0.33-3.7.el5.i386

samba-common = 0:3.0.33-3.7.el5 is needed by samba-3.0.33-3.7.el5.i386

这是因为包之间存在依赖关系,所以正确安装方式应该是:

[root@localhost Server]# rpm -ivh -f --nodeps samba-3.0.33-3.7.el5.i386.rpm

warning: samba-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba ########################################### [100%]

同理,另外三个包也采用同样的方式进行安装:

[root@localhost Server]# rpm -ivh -f --nodeps samba-client-3.0.33-3.7.el5.i386.rpm

warning: samba-client-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba-client ########################################### [100%]

[root@localhost Server]# rpm -ivh -f --nodeps samba-common-3.0.33-3.7.el5.i386.rpm

warning: samba-common-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba-common ########################################### [100%]

[root@localhost Server]# rpm -ivh -f --nodeps samba-swat-3.0.33-3.7.el5.i386.rpm

warning: samba-swat-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba-swat ########################################### [100%]

    四个包安装完成之后,使用命令rpm -qa | grep samba进行查询,发现搭建samba服务器所依赖的所有服务器都已经安装好了。

    另外,必须保证系统安装了xinetd服务包,如果没有,需要自行安装。使用命令rpm –ivh xinetd-2.3.14-10.el5.i386.rpm。

3. 配置smb.conf文件

Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf,该文件中记录着大量的规则和共享信息,所以是samba服务非常重要的核心配置文件,完成samba服务器搭建的大部分主要配置都在该文件中进行。

    Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放到日志文件中。

    下面简要介绍smb.conf配置文件的内容,用vi /etc/samba/smb.conf打开该配置文件,可以看到该配置文件按照功能不同分成了三部分:

a) 配置项说明

    这里主要对smb.conf文件的作用及相关信息进行简要说明,以“#”、“;”开头的行都是Samba的解释信息以及格式规范,默认是不生效的,可以通过去掉前面的符号来进行设置并使之生效。

b) 全局设置

全局设置区是从[global]行开始,主要完成一些对所有共享资源都生效的设置,比较有用的设置具体如下:

# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH

# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can

# specifiy it as a per share option as well

#

workgroup = MYGROUP

server string = Samba Server Version %v

; netbios name = MYSERVER

; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24

; hosts allow = 127. 192.168.12. 192.168.13.

其中,“workgroup = MYGROUP”行可以完成对samba服务器所在工作组的设置;server “string = Samba Server Version %v”行可以对服务器的描述进行设置,这主要用途是通过不同的描述,可以使用户能够对工作组中不同的Samba服务器进行区分。

c) Samba安全模式

以“Standalone Server Options”行开始为Samba服务器的安全级别设置区域,如下:

# ----------------------- Standalone Server Options ------------------------

#

# Security can be set to user, share(deprecated) or server(deprecated)

#

# Backend to store user information in. New installations should

# use either tdbsam or ldapsam. smbpasswd is available for backwards

# compatibility. tdbsam requires no further configuration.

security = user

passdb backend = tdbsam

其中,“security = user”为系统默认的安全级别, 在Samba服务器中,为了适应不同企业的安全需求,共有五种安全级别,分别是:

1) share模式:不用进行权限匹配检查即可访问共享资源,安全性比较差;

2) user模式:需要对用户名和密码进行验证,通过后才能访问共享资源,具有一定的安全性;

3) server模式:通过指定的服务器对用户名和密码进行验证,如果不通过,客户端会用user级别访问;

4) domain模式:domain级别的Samba服务器只作为域的成员客户端加入Windows域中,由Windows域控制器来完成对用户名和密码的验证;

5) ads模式:如果Samba服务器以ads方式加入Windows域中,将具备domian级别的所有功能,并且可以完成对用户名和密码的验证工作。

一般系统安装之后默认是的user级别。

d) 日志文件

    日志文件的设置在Samba服务器的搭建过程中同样非常重要,Samba服务器会为每个客户端分别建立日志文件,通过日志文件,可以了解到客户端访问的基本信息以及系统的包错信息等,方便对于系统的维护。日志文件默认保存在log file = /var/log/samba/%m.log。当启动Samba服务以后,会在/var/log/samba中看到nmbd.log和smbd.log两个日志文件。其中,nmbd.log记录nmbd进程的解析信息;smbd.log记录系统的错误信息以及用户的访问信息。当客户端访问时,这里会自动添加客户端的相关日志。

e) 共享设置

    在Samba服务器中,我们一般需要手工设置Samba的共享文件路径、访问规则等,下面进行简要说明。我们可以在 smb.conf 文件的最下面加上一段:

[public]

comment = jianw

path = /usr/share/jw

public = yes

readonly = yes

writable = yes

    加上之后保存smb.conf文件。其中,“[public]”为共享目录名,共享资源发布以后,存放共享资源的目录成为共享目录,必须为共享目录定义一个共享名;“comment”为共享资源的描述,方便用户访问时对共享文件进行区分,在这里定义设置为“jianw”;“path”为共享文件存放的绝对路径,例如可以在/usr/share中mkdir一个“jw”目录存放共享文件,那么这里的路径设置为“path = /usr/share/jw”;“public”行可以设置共享资源是否允许匿名访问,设置为“yes”表示允许匿名访问,设置为“no”表示禁止匿名访问;“readonly”行为对文件读取进行设置,设置为“yes”表示只读,设置为“no”表示可以读和写。

4. 设置访问用户

    对于访问Samba服务器的帐号,需要首先在系统中建立同名系统帐号,如想要建立一个名为“jianw”的Samba帐号,需首先在系统中建立名为“jianw”的系统用户。建立Samba帐号的命令为“smbpasswd -a 用户名”。输入命令之后,还需要设置Samba帐号密码,Samba帐号密码与系统帐号密码可以不一致。如下:

[root@localhost /]# smbpasswd -a jianw

New SMB password:

Retype new SMB password:

    用户名和密码信息通常存放在/etc/samba/smbpasswd中,Samba服务器在每次用户进行访问时,会将用户提交的信息与smbpasswd保存的信息进行对比,通过后才与客户端建立连接,允许客户端访问。如果在/etc/samba中找不到smbpasswd文件,是因为samba启用了tdbsam验证,可以修改smb.conf文件的“passdb backend = tdbsam”行,然后加上“smb passwd file = /etc/samba/smbpasswd”。

5. 开启Samba服务

OK,现在通常基本的配置已经完成,可以开启Samba服务器的服务了,用命令service smb start 或 /etc/rc.d/init.d/smb start,如下:

[root@localhost /]# service smb start

启动SMB服务: [确定]

启动SMB服务: [确定]

    这样,Samba服务就已经开启好了,现在还需要关闭系统防火墙,用命令iptables –F。

    现在,可以通过Windows客户端对Samba服务器进行访问了。在IE或者“运行”中输入:\\172.16.23.165\public,输入用户名和密码进行验证之后,即可进入Samba服务器的共享目录。如下:

 

注意:

        /etc/rc.d/init.d/smb start                     启动samba

       chkconfig  --level  235  smb on           开机自动开启samba服务

       chkconfig  --level  235  iptables off     开机自动关闭防火墙

       iptables -F                                           关闭防火墙

       service iptables stop                           关闭防火墙

       setenforce      0                                  关闭selinux

       vi /etc/selinux/config   SELINUX=disable   开机永久关闭selinux

       setsebool -P  samba_enable_home_dir on    selinux  设置samba目录     

       chown -R forrest:forrest /home/zxc   更改文件夹的所有者和所属组

 

       smbpasswd 添加的用户存放在以下两个文件中

        /var/lib/samba/private/passdb.tdb

       /var/lib/samba/private/secrets.tdb

 

       setsebool -P use_samba_home_dirs on             设置selinux中的samba目录

       /etc/rc.d/init.d/smb reload                                     重新载入samba配置文件

       getsebool -a | grep samba                                    查看selinux的bool值设置

 

      /var/log/samba/                                                      samba日志目录

    samba服务器检测命令:

     [forrest@localhost home]$ testparm

      

 

搭建Linux—samba服务器
 
2011-08-22 11:32:20  www.hackbase.com  来源:互联网
 
搭建Linux—samba服务器 环境:一台安装了LINUX操作系统的主机,此处安装的是RHEL5.4,IP地址为192.168.35.188/24 要求:在RHEL5.4平台下配置samba服务,实现windows和linux间的网络 ...


                  搭建Linux—samba服务器
环境:一台安装了LINUX操作系统的主机,此处安装的是RHEL5.4,IP地址为192.168.35.188/24

要求:在RHEL5.4平台下配置samba服务,实现windows和linux间的网络共享访问。

对于jishu目录是存放相关技术资料的,技术部有可读写的权限,其它组用户只有可读权限。

对于caiwu目录是存放公司财务资料的,财务部有可读写的权限,其它组用户没有读写权限。

对于renshi目录是存放人事部人事资料的,人事部有可读写的权限,其它组用户只有可读权限。

对于yewu目录是存放相关业务资料的,业务部有可读写的权限,其它组用户只有可读权限。

对于public目录是存放公共资料和工具软件的,所有组及用户都可读写。

步骤:

1.准备samba相关软件包

所需samba软件包如下:

samba-3.0.33-3.14.el5.i386.rpm——此为samba服务端samba服务器的主要软件包

samba-client-2.2.7a-7.9.0.i386.rpm——此为samba的客户端软件包

samba-common-2.2.7a-7.9.0.i386.rpm——此为samba支持及协议包

samba软件包可以从系统自带光盘中找并安装,也可以从网上下载。

 

2.安装并启用samba服务

一般上安装系统后,就已自动将客户端和支持包安装好了,所以我们只需安装服务端。

cd /tmp/ —切换到samba包所在位置。

rpm –ivh samba-3.0.33-3.14.el5.i386.rpm ——安装samba包。

service smb restart ——启动samba服务。

如图:

查看安装的所有samba包,用命令:

rpm –qa |grep samba

 

3.配置samba共享

修改samba配置文件,在修改配置文件之前先将初始配置文件备份,以便后用。

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

然后用vim进行编辑配置文件

vim /etc/samba/smb.conf ——修改samba配置文件

在vim中输入英文状态下的【:】(冒号),然后在后面输入set nu,在配置文件中会显示行号。这样你找某一行的参数时就好找了。

修改全局配置里的工作组与WINDOWS一致,这样便于WINDOWS访问。

workgroup 后面跟工作组名称。

server string 后面为samba服务器的描述,这个会在窗口的标题栏显示。

netbios name 后面为netbios显示的名称,即在网上邻居中显示的计算机名。

配置samba服务器的安全级别,user用户要用账户和密码才能登入samba服务器(是samba默认的安全等级),share表示用户不需要账户及密码即可登入samba服务器,server表示检查账户及密码的指定由另一台windows服务器或samba服务器负责,另外还有一个domain表示由域控制服务器来验证用户的账户及密码。

各共享目录的相应配置信息,如下图示:

301 [renshi] ——[共享资源共享名称]

302    comment = 人事部相关资料存放,其他部门成员只可浏览^_^ ——共享文件描述

303    path = /xunyou/renshi ——共享文件绝对路径

304    create mask=0664   ——指明新建立文件的属性。

305    directory mask=0775 ——指明新建立目录的属性。

306    writable=yes ——是否有写的权限

307    valid users=renshi,@all ——指定能使用该共享资源的组和用户,renshi为用户,all为组,这里要加符号【@】

308    browseable=yes ——是否有浏览权限

309    sync always=yes ——对共享资源进行写操作后是否同步

 

4.添加用户和组

先添加组all,再添加相应的用户并加入组中。加入组用参数 -G ,也可以添加用户后再加入组,用这个命令:

usermod -G groupname username

修改用户为没有登录LINUX系统的权限:

要想用户没有登录LINUX系统的权限只需在用户配置文件中修改相应用户行,将最后一个【:】冒号后的路径改为:/sbin/login

vim /etc/passwd

 

5.建立samba用户,并加密码

在这里不是新建用户,而是在原来用户上加入samba的密码,用命令:

smbpasswd -a caiwu

smbpasswd -a yewu

smbpasswd -a jishu

smbpasswd -a renshi

如下图示,对已有用户a进行密码设置:

 

5.建立相应的目录,并授权

建立相应的目录:

mkdir /xunyou

cd /xunyou

mkdir jishu caiwu renshi yewu public

配置目录的权限:

chmod 770 caiwu ——770为用户可读写执行,组可读写执行,其它用户及组没权限。

chmod 755 jishu

chmod 755 renshi

chmod 755 yewu

chmod 775 public

关于权限码这里简单说明一下,rwx分别为421,r为可读,w为可写,x为可执行,加起来为7。drwxr-xr-x中第一个rwx为用户权限,第二个为组权限,第三个为其它用户及组的权限,【d】为目录,如果是文件则前面带一个【-】 。所以这里权限为755。

配置目录的所有者:

chown caiwu.caiwu caiwu ——此目录所属用户和组都为caiwu,所以只有用户caiwu才可以读写,其它用户没有权限。

chown jishu.all jishu ——此目录所属用户为jishu所属组为all,所以,根据上面的权限码可知jishu有可读写权限,而其他用户只有可读权限。

chown renshi.all renshi ——此目录所属用户为renshi所属组为all,所以,根据上面的权限码可知renshi有可读写权限,而其他用户只有可读权限。

chown yewu.all yewu ——此目录所属用户为yewu所属组为all,所以,根据上面的权限码可知yewu有可读写权限,而其他用户只有可读权限。

chown root.all public ——此目录所有属组为all,根据上面的权限码可知所属all组的用户都有读写权限。

用命令ll查看目录的详细信息,权限如下图示:

 

6.重启samba服务

命令:servcie smb restart

让其开机启动:chkconfig smb on

查看启动情况:service smb status ; chkconfig –list smb

 

7.测试,用WINDOWS客户端访问共享目录

用caiwu登录:

断开共享连接,并用其他用户登录:

本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://www.hackbase.com/tech/2011-08-22/65054.html