Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226250
  • 博文数量: 36
  • 博客积分: 3044
  • 博客等级: 中校
  • 技术积分: 356
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-20 18:31
文章分类

全部博文(36)

文章存档

2010年(36)

分类: LINUX

2010-03-05 17:47:20

 
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处作者信息和本声明。否则将追究法律责任.http://U16.cublog.cn
 
      Linux使用一个被称为samba的程序集来实现SMB协议samba属于GNU Public License(简称GPL)软件.因此任何用户都可以合法且免费的使用它...samba服务解决了网络中多种操作系统之间互联,使用户能够方便快捷的使用彼此提供的共享文件和打印设备...

       SMB协议概述:SMB全称"Server  Message  Block"指的是服务信息块.是查看局域网的共享目录/打印机的一种协议.该协议可以在TCP/IP之上,也可
以在其它的网络协议中,如IPX何NETBEUI.通过SMB协议客户端应用程序可以在各种网络环境下读.写服务器上的文件.还可以通过SMB协议,应用程序还可以访问远程服务器端的文件和打印机等资源...samba服务相关的密码文件有两个,一个是/etc/samba/smbpasswd,samba服务安装后此文件是不存在的,可使用smbpasswd来创建.大家需要记住的是samba服务与Linux操作系统使用不同 的密码文件.因此无法使用linux系统中的账号登录samba服务器...
 
另一个文件是/etc/samba/smbusers,该文件是用于控制用户映射的...
samba服务的日志默认存放在/var/log/samba中...

一..samba服务器使用的安全等级....
1. share  当客户端连接到该等级的服务器上时,不需要账号和密码就可以访问samba服务器上的共享资源.但安全性无法得到保障..
2. user  当客户端连接到该等级的服务器时,需要使用有效的账号和密码访问该samba服务器上的共享资源..(默认的设置)
3. share  与user等级相同,也需要输入账号和密码,但密码验证会有另外一台SMB服务器负责,因此还必须指定口令服务器...
4. domain 当Samba服务器加入到windowsNT域中后,samba服务器不再负责账号和密码的验证,统一由域控制器负责,则使用该安全等级,同时也必须指
定口令服务器...
5. ads  Samba加入到windows活动目录后,使用该等级,同时也需指定口令服务器...   
服务器主要进程 smbd和nmbd...

二.. 配置文件中的一些定义.....
comment   指的是注释信息...
path           定义共享的目录..
public        是否允许匿名访问和guest  ok的效果一样
brownseable  = no  指的是除了自己以外,不许任何人访问..
writeable    后定义共享目录是否可写..
valid users  定义哪些用户可以访问,也可以定义组,如果是组的话,在组名前面加上@或者+.....
write list     定义哪些用户可以写入,也可以定义组,如果是组的话,在组名前面加上@或者+.....

三..下面开始samba服务的配置....我们来搭建个实验环境,系统上有三个用户wendy,natasha,mary,密码都为redhat,还有个附加组mygroup,其中wendy和
natasha指定附加组mygroup...其中workgroup = workgroup,我们有个共享目录/share,共享名为randy,只许wendy和natasha可以访问,且具备读写权限,
而mary只能读取/share目录,却不具备写的权限...(我们先关闭防火墙和SElinux),服务器IP:192.168.0.195,客户端IP:192.168.0.197
[root@station195 ~]# getenforce
Enforcing (SElinux处于开启状态)
[root@station195 ~]# setenforce 0 (0代表关闭selinux,1代表enforcing)
[root@station195 ~]# getenforce
Permissive (如果是permissive就表示已经处于关闭状态)
如果你使用getenforce命令,显示结果为disable的话,此时你设置好0级别了必须重启系统才能生效,这个很多人遇到不知道怎么解决....
samba服务需要安装三个包,默认情况下系统会装两个,一个是samba-common另一个是samba-client.还需要装一个包samba..使用下面命令查看系统已
经安装的sanba包...
[root@station195 ~]# rpm -qa | grep samba
samba-common-3.0.33-3.14.el5
samba-client-3.0.33-3.14.el5

服务器已安装其中的两个,我们下面去安装第三个包samba,服务器做好
yum 源指向本地..先挂载然后安装
[root@station195 ~]# yum -y install samba
[root@station195 ~]# useradd natasha (用passwd 创建密码,密码为redhat)
[root@station195 ~]# useradd wendy   (用passwd 创建密码,密码为redhat)
[root@station195 ~]# useradd mary     (用passwd 创建密码,密码为redhat)
[root@station195 ~]# usermod -G  mygroup  natasha
[root@station195 ~]# usermod -G  mygroup  wendy
[root@station195 ~]# mkdir  /share
[root@station195 share]# chmod g+w  /share/
[root@station195 share]# chown root.mygroup  ../share/
[root@station195 share]# ll   -d   /share/
drwxrwxr-x 2 root mygroup  4096 Mar  5 16:14 /share/
[root@station195 share]# ls
[root@station195 share]# touch a.txt b.txt
[root@station195 share]# ls  -l
total 8
-rw-r--r-- 1 root root 0 Mar  5 16:14 a.txt
-rw-r--r-- 1 root root 0 Mar  5 16:14 b.txt
[root@station195 ~]# smbpasswd  -a  natasha (密码为自己的名字)
[root@station195 ~]# smbpasswd  -a  wendy   (密码为自己的名字)
[root@station195 ~]# smbpasswd  -a  mary     (密码为自己的名字)
[root@station195 samba]# vim /etc/samba/smb.conf
[randy]
       comment = this is share directory
       path = /share
       public = yes
       browseable = yes
       write list = @mygroup
       valid users = @mygroup   mary
[root@station195 ~]#testparm (这个进行语法的测试,下面报OK,证明正确..)
[root@station195 ~]# service smb restart (记住每次修改配置文件一定要重启动服务)

下面我们去客户端进行测试...
[root@station197 ~]# smbclient   -L    192.168.0.195 (查看192.168.0.195上有哪些共享,提示输入密码,密码为空...)
Password:
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
 Sharename       Type      Comment
 ---------       ----      -------
 randy           Disk      this is share directory
 IPC$            IPC       IPC Service (Samba Server Version 3.0.33-3.14.el5)
 station90       Printer   station90
 station         Printer   station
 Server          Printer   Server
 qqq             Printer   qqq
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
 Server               Comment
 ---------            -------
 STATION195           Samba Server Version 3.0.33-3.14.el5
 YANGZORDER-PC       
 Workgroup            Master
 ---------            -------
 WORKGROUP            YANGZORDER-PC

[root@station197 ~]# smbclient  //192.168.0.195/randy  -U  natasha%natasha(这个命令和下面的命令效果一样,只是这儿密码是明文的,不建议大家
这么写..以下面的写法为主...)

[root@station197 ~]# smbclient  //192.168.0.195/randy  -U  natasha(这个地方一定指共享的名字而不是share)
Password:            (输入的密码为natasha,而不是redhat)
Domain=[STATION195] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> ls
  .                                   D        0  Fri Mar  5 16:14:35 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  a.txt                                        0  Fri Mar  5 16:14:35 2010
  b.txt                                        0  Fri Mar  5 16:14:35 2010
  63483 blocks of size 131072. 38139 blocks available
smb: \>mkdir   natasha
smb: \> ls
  .                                   D        0  Fri Mar  5 16:48:54 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  a.txt                                        0  Fri Mar  5 16:14:35 2010
  b.txt                                        0  Fri Mar  5 16:14:35 2010
  natasha                             D        0  Fri Mar  5 16:48:54 2010
smb: \> rmdir natasha
smb: \> ls
  .                                   D        0  Fri Mar  5 16:49:33 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  a.txt                                        0  Fri Mar  5 16:14:35 2010
  b.txt                                        0  Fri Mar  5 16:14:35 2010
  63483 blocks of size 131072. 38139 blocks available
natasha用户可以在randy目录中创建和删除目录.他也可删除wendy用户创建的目录.但绝对删除不了别人的家目录.
[root@station197 ~]# smbclient  //192.168.0.195/randy -U  wendy
Password:
Domain=[STATION195] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> ls
  .                                   D        0  Fri Mar  5 16:14:35 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  a.txt                                        0  Fri Mar  5 16:14:35 2010
  b.txt                                        0  Fri Mar  5 16:14:35 2010
  63483 blocks of size 131072. 38139 blocks available
smb: \> mkdir wendy
smb: \> ls
  .                                   D        0  Fri Mar  5 16:52:16 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  wendy                               D        0  Fri Mar  5 16:52:16 2010
  a.txt                                        0  Fri Mar  5 16:14:35 2010
  b.txt                                        0  Fri Mar  5 16:14:35 2010
  63483 blocks of size 131072. 38139 blocks available
smb: \> rmdir wendy
smb: \> ls
  .                                   D        0  Fri Mar  5 16:53:08 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  a.txt                                        0  Fri Mar  5 16:14:35 2010
  b.txt                                        0  Fri Mar  5 16:14:35 2010
  63483 blocks of size 131072. 38139 blocks available
wendy用户也可在randy目录中创建和删除目录.同时wendy也可删除natasha创建的目录.这一点大家不能忽略了..
 
[root@station197 ~]# smbclient  //192.168.0.195/randy -U  mary
Password:
Domain=[STATION195] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> ls
  .                                   D        0  Fri Mar  5 16:54:38 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  a.txt                                        0  Fri Mar  5 16:14:35 2010
  b.txt                                        0  Fri Mar  5 16:14:35 2010
  63483 blocks of size 131072. 38139 blocks available
smb: \> mkdir mary
NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \mary
smb: \> ls
  .                                   D        0  Fri Mar  5 16:54:38 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  a.txt                                        0  Fri Mar  5 16:14:35 2010
  b.txt                                        0  Fri Mar  5 16:14:35 2010
  63483 blocks of size 131072. 38139 blocks available
可以发现mary无法创建目录,因为他没有权限,在服务器配置文件write list 中没有他的名字...

测试成功...

四..下面我们来开启服务器的SElinux,使用下面的命令...
[root@station195 share]# setenforce 1 (这样设置只是临时生效,想永久生效,编辑/etc/selinux/config文件)
[root@station195 share]# getenforce
Enforcing
已经开启,去服务器端再次测试....
[root@station197 ~]# smbclient  //192.168.0.195/randy -U  natasha
Password:
Domain=[STATION195] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
发现无法访问了,现在我们在开启SElinux的情况下让客户端可以访问...首先我们去看看Samba服务的selinux的bool值...
[root@station195 share]# getsebool -a  |grep samba
samba_domain_controller --> off
samba_enable_home_dirs --> off (这一项默认是关闭的)
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_share_nfs --> off
use_samba_home_dirs --> off
virt_use_samba --> off
我们需要将samba_enable_home_dirs --> off这一项开启...使用下面的命令..
[root@station195 share]# setsebool  -P  samba_enable_home_dirs   on
[root@station195 share]# getsebool -a  |grep samba
samba_domain_controller --> off
samba_enable_home_dirs --> on(这一项已经开启了)
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_share_nfs --> off
use_samba_home_dirs --> off
virt_use_samba --> off
现在我们暂时还访问不了..然后我们去查看一下share目录的标签..
[root@station195 share]# ll -Zd /share/
drwxrwxr-x  root root root:object_r:default_t          /share/
我们去修改它的标签...
[root@station195 share]# ll   -Zd   /share/
drwxrwxr-x  root root root:object_r:default_t          /share/
[root@station195 share]# chcon -t   samba_share_t    /share
[root@station195 share]# ll   -Zd   /share/
drwxrwxr-x  root root root:object_r:samba_share_t      /share/(将default_t标签修改为samba_share_t)
然后我们再次去客户机测试...
[root@station197 ~]# smbclient  //192.168.0.195/randy -U  natasha
Password:
Domain=[STATION195] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> ls
  .                                   D        0  Fri Mar  5 16:54:38 2010
  ..                                  D        0  Fri Mar  5 14:50:49 2010
  63483 blocks of size 131072. 37865 blocks available
可以发现natasha可以访问,而且可以创建和删除目录,其他的用户都可以访问,这些我都测试过,这里就演示这一个用户....
samba服务实现了不同机器之间的资源共享和访问,非常的实用....大家一定得学好了....
阅读(2190) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~