Samba将Linux集成到Windows网络

(一)Samba是一个与Windows操作系统兼容的文件与打印共享服务器,通过在Linux服务器上配置Samba,可以使Linux系统集成到Windows网络中。在网络中,用户可以使用多种方法实现数据共享,例如常见的Web服务、FTP服务。使用这两种网络服务的好处是:它们是标准的Internet服务,可以被绝大多数操作系统支持,用户基本不用考虑操作系统之间集成问题。另外,各种Unix操作系统之间也可以通过SSH和NFS提供数据共享服务。但是这两种服务在微软Windows系列操作系统中默认不被支持,因而Windows客户机访问这两种服务时不方便。现在微软网络使用文件共享协议为CIFS(通用Internet文件系统),基本可以认为是SMB的升级版本。Linux下的Samba服务就是基于SMB/CIFS协议的。

 
(二)配置Samba服务器
实验环境:LinuxAS4操作系统,双网卡,IP分别为192.10.30.3/24(VM1) | 192.10.10.3/24(VM2)
[root@localhost /]#rpm -qa |grep samba
system-config-samba-1.2.21-1        #提供了RH公司专门为SMB服务器管理编写的图形界面的管理程序,功能不如Swat工具完善 
samba-common-3.0.10-1.4E6           #Samba的支持软件包,提供smb服务器和客户机中都必须使用的公共文件 
samba-client-3.0.10-1.4E.6          #提供了samba客户机的所有文件,可以使Linux作为客户机访问Windows服务器或其他Samba服务器
samba-3.0.10-1.4E.6                 #基本的服务器软件包,用于提供SMB服务
samba-swat-3.0.10                   #基于Web界面的管理工具,使用户可以比较方便地精确调整Samba服务器
smb.conf文件分成多个小节,结构清晰,该文件不区分大小写,如参数"writable = yes"与"writable = YES"等价;以"#"和";"开头的行为注释行
[root@localhost /]#grep -v "^#" /etc/samba/smb.conf |grep -v "^;"    #查看smb.conf有效配置内容
 
[global]   #全局参数字段
   workgroup = mygroup    #定义Samba服务器所在的工作组域  
   netbios name=Linux srv   #定义计算机的Netbios名,默认不存在,新添加
   server string = Linux samba Server  #定义计算机描述,通过网上邻居访问时可以在备注信息中看到这个信息
  client code page = 936
  character set = 936   #  以上用于支持中文字体
  #unix charset = cp936    #我按以下输入不支持中文
 #dos charset = cp936
 # unix charset = gb2312 #我按以下输入不支持中文
 #dos charset  =  gb2312
   hosts allow = 192.10.30. 192.10.10. #允许访问的网络或主机地址,注意此句本为注释行
   printcap name = /etc/printcap      
   load printers = yes        #自动加载打印机列表 

   cups options = raw
   log file = /var/log/samba/%m.log   #设置Samba服务器的日志文件存放路径,%m.log为变量,表示客户端主机名称
   max log size = 50                  #日志文件最大容量,单位是KB
 
   security = user     #定义Samba服务器的安全级别;share:共享级别,所有用户不需要用户名和密码即可访问;user:这是Samba的默认配置,所有用户需提供用户名及密码才能访问;server:和user安全级别类似,所有用户必须通过身份验证才能访问服务器的资源,如果递交失败,退到user级别;domain:要求网络上存在一台Windows域控制器,Samba把用户名能密码传给指定的域控制器进行验证

  encrypt passwords = yes       #是否加密密码,no表示以明文传输
  smb passwd file = /etc/samba/smbpasswd    #指定存放Samba用户密码文件

   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
 
   interfaces = 192.10.30.3/24 192.10.10.3/24    #指定Samba使用的网络接口,可使用接口名或者IP地址 

   dns proxy = no 
   idmap uid = 16777216-33554431
   idmap gid = 16777216-33554431
   template shell = /bin/false
   winbind use default domain = no

[homes]   #目录共享字段
   comment = Home Directories
   browseable = no    #表示所有Samba用户目录不被看到,只有登录用户才能看到自己的宿主目录
   writable = yes     #设置用户对自己的宿主目录有写权限
 
[printers]   #打印机共享字段
   comment = All Printers
   path = /var/spool/samba
   browseable = no
   guest ok = no
   writable = no
   printable = yes

[public]      #以public为共享名共享
   comment = Public directories    #描述共享信息
   path = /home/public             #指定共享目录位置
   public = yes                    #对所有Samba用户可见
   writable = yes                  #允许用户对该目录进行写入操作
 
[public2]
   path =/usr/public2
   only guest = yes        #表示所有用户在使用该共享目录进的用户身份都是guest,即linux系统用户nobody
   writable = yes        
   browseable = no       #用户都不能浏览到,类似于public,但可以在运行处输入\\IP\public2访问到 
   printable = no
 
 
:wq 保存以上配置文件
 
[root@localhost /]#testparm    #查看Samba有效的设置情况
[root@localhost /]#service smb restart #重新启动Samba服务 或使用service smb reload
[root@localhost /]#smbpasswd -a user1  #建立Samba用户
#smbpasswd -a    向 /etc/samba/smbpasswd中添加用户
#smbpasswd -x    从/etc/samba/smbpasswd中删除用户
#smbpasswd -d    禁用某个Samba用户
#smbpasswd -e    启用某个Samba用户
#smbpasswd 命令所操作的帐户必须是Linux系统中已有的用户
[root@localhost /]#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/sambpasswd   #将所有的linux用户帐户一次性添加到smbpasswd文件中
[root@localhost /]#smbpasswd user2   #为了使新加入的用户帐户可用,还得设置Samba密码,区分所有用户还没有加入到smbpasswd文件时命令的写法
 
从Windows客户端访问:通过网上邻居直接找到Samba服务器进行访问或者在运行中输入UNC路径
[root@localhost /]#smbclient -L 127.1   #查看本机提供的共享资源
[root@localhost /]#smbstatus            #显示Samba服务器连接状态;显示客户端IP/主机名/登录用户/及锁定的文件等
[root@localhost /]#smbclient //192.10.30.10/aa -U aa  #访问Windows主机上的资源,注意格式(IP后面不能有空格)
[root@localhost /]#smbmount //19210.30.10/aa /mnt     #将Windows主机上的共享目录直接挂载到Linux主机上
[root@localhost /]#umount /mnt/       #卸载Samba文件系统
 
 
(三)使用Swat管理samba服务器
[root@localhost /]#chkconfig swat on         #启动Swat
[root@localhost /]#vi /etc/xinetd.d/swat     #修改允许访问Swat服务的客户主机IP地址,可根据管理需求进行更改;在此我注释掉#only_from =127.0.0.1,即允许任意IP访问
[root@localhost /]#service xinetd restart    #重启xinetd服务 
在30段客户端浏览器中输入http://192.10.30.3:901/,Swat服务默认工作端口为901 在弹出的对话框中以root登录可全局控制 
 
^^接下来就以Web界面的方式管理Samba了,自己好好再研究下吧
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章