Samba服务器的配置全过程

1、实训目的

1)掌握samba服务器的安装和配置方法

2)掌握Linux与Windows的资源共享和互访方法;

3)了解使用Samba共享用户认证和文件系统。 

 

2项目背景

某公司有system、develop、productdesign和test等4个小组,个人办公机操作系统为Windows 2000/XP/2003,少数开发人员采用Linux操作系统,服务器操作系统为RHEL 4,需要设计一套建立再RHEL 4之上的安全文件共享方案。每个用户都有自己的网络磁盘,develop组到test组有共用的网络硬盘,所有用户(包括匿名用户)有一个只读共享资料库;所有用户(包括匿名用户)要有一个存放临时文件的文件夹。

网络拓扑如下图所示:

Samba服务器的配置全过程_第1张图片

项目目标:

●  System组具有管理所有Samba空间的权限。

● 各部门的私有空间:各小组拥有自己的空间,除了小组成员及system组有权限以外,其他用户不可访问(包括列表、读和写)。

● 资料库:所有用户(包括匿名用户)都具有读权限而不具有写入数据的权限。

●  Develop组与test组的共享空间,develop组与test组之外的用户不能访问。

● 公共临时空间:让所有用户可以读取、写入、删除。

3、实训内容

1)在windows系统和Linux之间进行文件共享,使用samba服务器。

2)Samba保证了Linux与windows之间方便快捷的共享文件。


具体的配置过程:

 1、samba是干什么的?它有什么用?

  Samba(SMB是其缩写) 是一个网络服务器,它是Linux作为本地服务器最重要的一个服务,用于Linux和Windows共享文件之用;
  Samba可以用于Windows和Linux之间的共享文件,也一样用于  Linux和Linux之间的共享文件;
  不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的;
  大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;

  Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器;


  我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。
  在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说和FTP是不一样的。
  Samba 应该范围主要是Windows和Linux 系统共存的网络中使用;如果一个网络环境都是Linux或Unix类的系统,没有必要用Samba,应该用NFS更好一点;
那Samba 能为我们提供点什么服务呢?主要是共享文件和共享打印机;

  samba包括两个服务器守护进程,smbd和nmbd。这两个进程各司其职,功用不同:smbd是samba服务的内核,是建立对话、验证用户、提供文件系统和打印服务的基础,负责硬盘驱动器和打印机的共享。用户通过客户端访问这个进程来进行文件和打印机共享;nmbd实现的是网络浏览,使得samba服务器显示在windows的网络邻居中,同时允许用户浏览可用资源。它负责NETBIOS信息的管理和传递,使得windows的用户可以在Explorer中使用“\\serverip”来访问samba的共享文件。

2、安装及服务操作命令
安装samba程序非常简单,使用rpm -q samba查看当前系统是否已经安装了samba软件。
如果没有那就进入光盘,rpm -ivh *samba*.rpm即可。
仔细说下安装的包:
samba-common-3.0.28-0.el5.8    //samba服务器和客户端中的最基本文件
 
samba-3.0.28-0.el5.8           //samba服务器核心软件包
system-config-samba-1.2.39-1.el5     //samba图形配置界面
samba-client-3.0.28-0.el5.8          //samba客户端软件 
启动、暂停和停止服务:/etc/init.d/smb start
/etc/init.d/smb stop
/etc/init.d/smb restart
或service smb start
service smb stop
service smb restart 
 
SAMBA方案的工作目标
有4个小组:develop productdesign test system 
1.system组具有管理所有samba空间的权限
2.各部门的私有空间:各小组拥有自己的空间,除了小组成员及system组外,其它用户不可访问
3.资料库:所有用户都有读权限,不能写入
4.develop组与test组的共享空间,只有develop组与test组有权限,其它用户都不能访问
5.公共临时空间,所有用户都有读,写,删除的权限

1、创建共享资源目录

[root@xuweidabian /]# mkdir -p /data/share
[root@xuweidabian /]# cd /data/share
[root@xuweidabian share]# mkdir develop productdesign test library develop_testrw temp


各目录说明如下:
/data/share:管理员目录,负责管理其下所有目录。
/data/share/develop:develop的主目录,除了用户本身和system之外,其他用户都是不可读不可写。
/data/share/productdesign:productdesign的主目录,除了用户本身和system组以外,其他用户都是不可读不可写。
/data/share/test:test的主目录,除了用户本身和system组以外,其他用户都是不可读不可写。
/data/share/library:资料库目录,所有用户(除了system组有权限写入外)只读目录。
/data/share/develop_testrw:develop组和test组的共享空间,develop组与test组之外的用户不能访问。
/data/share/temp:用于所有用户(包括匿名用户)的可读可写。

2、添加用户组。
[root@xuweidabian share]# groupadd system  
[root@xuweidabian share]# groupadd develop
[root@xuweidabian share]# groupadd productdesign
[root@xuweidabian share]# groupadd test
[root@xuweidabian share]# groupadd develop_test

3、添加用户。
[root@xuweidabian share]# useradd -g test -G develop_test -d /data/share/test -s /sbin/nologin test
[root@xuweidabian share]# useradd -g develop  -G develop_test -d /data/share/develop  -s /sbin/nologin develop
[root@xuweidabian share]# useradd -g productdesign   -d /data/share/productdesign  -s /sbin/nologin productdesign
[root@xuweidabian share]# useradd -g system -d /data/share/ -G system,develop,productdesign,test,develop_test  -s /sbin/nologin system

4、添加Samba用户。
为了实现文件的共享添加Samba用户
[root@xuweidabian share]# smbpasswd -a system
New SMB password:
Retype new SMB password:
Added user system.
[root@xuweidabian share]# smbpasswd -a develop
New SMB password:
Retype new SMB password:
Added user develop.
[root@xuweidabian share]# smbpasswd -a productdesign
New SMB password:
Retype new SMB password:
Added user productdesign.
[root@xuweidabian share]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Added user test.

5、配置相关目录的权限与归属。

[[root@xuweidabian ~]# chown system:system /data/share
[root@xuweidabian ~]# cd /data/share
[root@xuweidabian share]# chmod 2770 develop develop_testrw productdesign test temp library
[root@xuweidabian share]# chown develop:system develop
[root@xuweidabian share]# chown productdesign:system productdesign
[root@xuweidabian share]# chown develop:system develop 
[root@xuweidabian share]# chown system:system /data/share
[root@xuweidabian share]# chown test:system test
[root@xuweidabian share]# chown system:system library
[root@xuweidabian share]# chown system:develop_test develop_testrw
[root@xuweidabian share]# chmod 755 library
[root@xuweidabian share]# chown system:system temp
[root@xuweidabian share]# chmod 777 temp
[root@xuweidabian ~]# chmod 755 /data/share

6、Samba服务器/etc/samba/smb.conf全局环境配置。
[root@xuweidabian ~]# vi /etc/samba/smb.conf

配置文件详解:


[pzk]                                      # 自定义共享名
comment = Home Directories                 # 描述符,是给系统管理员看的
path = /tmp                                # 共享的路径
public = yes                               # 是否公开,也就是是否能在网上邻居看到该共享
browseable = yes                           # 共享的目录是否让所有人可见
writable = yes                             # 是否可写
guest ok = no                              # 是否拒绝匿名访问,仅当安全级别为 share 时才生效
workgroup = WORKGROUP                      # 工作组,要设置成跟 Windows 的工作组一致
server string = Samba Server Version %v    # 其他 Linux 主机查看共享时的提示符
netbios name = MYSERVER                    # 用于在 Windows 网上邻居上显示的主机名
hosts allow = 127. 192.168.12. 192.168.13. EXCEPT 192.168.13.13   # 指定允许访问 samba 服务器的主机    
security = share                           # 定义安全级别
log file = /var/log/samba/log.%m           # 定义日志文件,每个访问的主机会产生独立的日志文件,%m 是客户端主机名
max log size = 50                          # 定义单个日志的最大容量(KB)
passdb backend = tdbsam                    # Samba 用户的存储方式,smbpasswd 表示明文存储,tdbsam 表示密文存储
deadtime = 10                              # 客户端在10分钟内没有打开任何 Samba 资源,服务器将自动关闭会话,在大量的并发访问环境中,这样的设置可以提高服务器性能
display charset = UTF8                     # 设置显示的字符集
max connections = 0                        # 设置最大连接数,0表示无限制,如果超过最大连接数则拒绝连接
guest account = nobody                     # 设置匿名账户为nobody
load printers = yes                        # 是否在启动 Samba 时就共享打印机    
cups options = raw                         # 设置打印机使用的方式
valid users = user1 user2    user3         # 指定哪些用户可以访问,如果不指定则所有用户都可访问
invalid users = user1 user2                # 指定哪些用户不可以访问
create mask = 0775                         # 客户端上传文件的默认权限
directory mask = 0775                      # 客户端创建目录的默认权限
write list = user1 user2 user3             # 设置可对文件进行写操作的用户
admin users = user1                        # 设置共享目录的管理员,具有完全权限


[global]
  workgroup = system
        server string = Samba Server Version %v
        netbios name = system
        server string = Linux Samba Server
        security = share     定义安全级别

一共由四种级别:

share:匿名共享,用户访问服务器不需要提供用户名和口令。

user:使用samba服务自我管理的帐号和密码进行用户认证,用户必须是本系统用户,但密码非/etc/shadow中的密码,而由samba自行管理的文件,其密码文件的格式由passdb bachend进行定义。

server:由第三方服务进行统一认证。

domain:使用主域控制器进行认证,基于kerberos协议进行。


passdb backend = tdbsam tdbsam使用一个数据库文件来建立用户数据库。可以使用smbpasswd命令建立samba用户,不过要建立的samba用户必须先是系统用户。我们也可以使用pdbedit命令来直接建立Samba账户。

[system]
      comment = systemadmin
      path = /data/share
      create mask = 0664
      directory mask = 0775
      writeable = yes
      valid users = system
      browseable = yes

7、资料库共享资源的配置。
[library]
      path = /data/share/library
      writeable = no
      browseable = yes
      guest ok = yes

8、公共临时共享空间的配置。
 [temp]
      path = /data/share/temp
      writeable = yes
      browseable = yes
      guest ok = yes

9、develop组与test组的共享空间。


      [develop_testrw]
      path = /data/share/develop_testrw
      writeable = yes
      valid users = system,@develop_test
      browseable = yes
      create mast = 0664
      directory mask = 0775


10、各部门的私有空间。

      [develop]
      path = /data/share/develop
      create mast = 0664
      directory mask = 0775
      writeable = yes
      valid users = develop,@system
      browseable = yes

      [productdesign]
      path = /data/share/productdesign
      create mast = 0664
      directory mask = 0775
      writeable = yes
      valid users = productdesign,@system
      browseable = yes

      [test]
      path = /data/share/test
      create mast = 0664
      directory mask = 0775
      writeable = yes
      valid users = test,@system
      browseable = yes

7、用testparm命令检查配置文件的正确性

8、为使配置文件生效,重启Samba服务
   service smb restart

在Windows下找到运行
输入\\172.30.1.116登陆Samba用户
就可以实现Windows和Linux之间的文件共享了。

9、在Windows下找到运行输入\\172.30.1.116登陆Samba用户就可以实现Windows和Linux之间的文件共享了。

10、over.

4、实训成果演示如下:

4.1 Samba服务器的架设

1.system组的成员拥有管理所有文件的权限,比如我们要把Windows中一个名为共享的记事本粘贴到Linux系统的system文件中去如下:

Samba服务器的配置全过程_第2张图片

2./data/share/develop:develop的主目录,除了用户本身和system之外,其他用户都是不可读不可写。

Samba服务器的配置全过程_第3张图片

Samba服务器的配置全过程_第4张图片

3./data/share/productdesign:productdesign的主目录,除了用户本身和system组以外,其他用户都是不可读不可写。

Samba服务器的配置全过程_第5张图片


4./data/share/test:test的主目录,除了用户本身和system组以外,其他用户都是不可读不可写。

Samba服务器的配置全过程_第6张图片

5./data/share/library:资料库目录,所有用户(除了system组有权限写入外)只读目录。
Samba服务器的配置全过程_第7张图片

6./data/share/develop_testrw:develop组和test组的共享空间,develop组与test组之外的用户不能访问。
Samba服务器的配置全过程_第8张图片

7./data/share/temp:用于所有用户(包括匿名用户)的可读可写。

Samba服务器的配置全过程_第9张图片

5.2 从Linux主机访问Windows共享目录区,请截图表示

 Samba服务器的配置全过程_第10张图片

                 5-4 Linux主机共享Windows共享资源

你可能感兴趣的:(Samba服务器的配置全过程)