Samba服務

 
在我们安装 Samba服务之前哈,我们先来了解一下其所需要的软件包以及它们的用途哈 ~
samba-3.0.33-3.28.el5.x86_64.rpm:该包为 Samba服务的主程序包。服务器必须安装该软件包。
samba-client-3.0.25b-0.el5.4.i386.rpm:该包为 Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具。
samba-common-3.0.25b-0.el5.4.i386.rpm:该包存放的是通用的工具和库文件,无论是服务器还是客户端都需要安装该软件包。
samba-swat-3.0.25b-0.el5.4.i386.rpm:当安装了这个包以后,就可以通过浏览器(比如 IE等哈)来对 Samba服务器进行图形化管理。
在安装 Samba之前,使用 rpm -qa命令检测系统是否安装了 Samba相关软件包: rpm -qa |grep samba
RHEL5的光盤里都有安裝包,爲了方便就把光盤里的 rpm包複製到 /home/cdrom下。
安裝主程序包: rpm -ivh samba-3.0.33-3.28.el5.x86_64.rpm
 
提示錯誤,提示的是没有安装这个文件: perl-Convert-ASN1-0.20-1.1.noarch.rpm ,装之:
 
安裝成功,繼續安裝 sambarpm -ivh samba-3.0.33-3.28.el5.x86_64.rpm
 
安裝 Samba的客户端工具: rpm -ivh samba-client-3.0.33-3.28.el5.x86_64.rpm
提示這個包已經安裝了。
 
繼續安裝存放通用的工具和库文件包: rpm -ivh samba-common-3.0.33.28.el5.x86_64.rpm
 提示這個包已經安裝了。

 安裝最後一個 Samba图形化管理工具: rpm -ivh samba-swat-3.0.33-3.28.el5.x86_64.rpm
安裝成功,到這裡就安裝好了所有的包了,所有软件包安装完毕之后,我们可以使用 rpm命令进行查询哈: rpm -qa | grep samba

 
Samba的配置文件一般就放在 /etc/samba目录中,主配置文件名为 smb.conf smb.conf中以“ #”开头的为注释,为用户提供相关的配置解释信息,方便用户参考,不用修改它哈。
smb.conf中还有以“;”开头滴,这些都是 samba配置的格式范例,默认是不生效滴,可以通过去掉前面的“;”并加以修改来设置想使用的功能。

 打開配置文件: vim /etc/samba/smb.conf
這兩句是设置 samba服务器的工作组和 服务器描述(实际上类似于备注信息)。

 
這裡是设置 samba服务器安全模式
samba服务器有 shareuserserverdomainads 五种安全模式,用来适应不同的企业服务器需求。
1share安全级别模式
客户端登录 samba服务器,不需要输入用户名和密码就可以浏览 samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证 samba服务器的安全性。
2user安全级别模式
客户端登录 samba服务器,需要提×××法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
3server安全级别模式
客户端需要将用户名和密码,提交到指定的一台 samba服务器上进行验证,如果验证出现错误,客户端会用 user级别访问。
4domain安全级别模式
如果 samba服务器加入 windows域环境中,验证工作服将由 windows域控制器负责, domain级别的 samba服务器只是成为域的成员客户端,并不具备服务器的特性, samba早期的版本就是使用此级别登录 windows域滴。
5ads安全级别模式
samba服务器使用 ads安全级别加入到 windows域环境中,其就具备了 domain安全级别模式中所有的功能并可以具备域控制器的功能。

 
Samba服务密码文件
samba服务器发布共享资源后,客户端访问 samba服务器,需要提交用户名和密码进行身份验证,验证合格后才可以登录。 samba服务为了实现客户身份验证功能,将用户名和密码信息存放在 /etc/samba/smbpasswd中,在客户端访问时,将用户提交资料与 smbpasswd存放的信息进行比对,如果相同,并且 samba服务器其他安全设置允许,客户端与 samba服务器连接才能建立成功哈 ~
那如何建立 samba帐号呢?偶在说之前先强调一点哈, samba帐号并不能直接建立滴,需要先建立 Linux同名的系统帐号。比如如果我们要建立一个名为 missamba帐号,那 Linux系统中必须提前存在一个同名的 mis系统帐号。
samba中添加帐号命令为 smbpasswd,命令格式: smbpasswd -a 用户名
 
注意:解决 /etc/samba目录下没有 smbpasswd文件,原因: samba启用了 tdbsam验证。
tdbsam這行禁用掉,添加下面這行,保存退出就好了。然後再新建用戶:

 
新建 mis用戶,設置 mis密碼,輸入兩次 mis密碼
添加 mis用戶到 samba服務,輸入兩次密碼,添加成功
 
 
Linux服务中,当我们更改配置文件后,一定要记得重启服务哈,让服务重新加载配置文件,这样新的配置才可以生效哈
注意哈:偶这里强调一下细节,重启 samba服务,虽然可以让配置生效,但是 restart是先关闭 samba服务,再开启服务哈,这样如果在公司网络运营中肯定会对客户端员工的访问造成影响,建议使用 reload命令重新加载配置文件使其生效,这样不需要中断服务就可以重新加载配置哈 ~
重啟服務:service smb restart 停止:service smb stop 啟動:service smb start
重新加載配置文件:service smb reload
我们可以使用chkconfig命令自动加载smb服务:
chkconfig --level 3 smb on # 运行级别3自动加载
chkconfig --level 3 smb off # 运行级别3不自动加载
我们还可以使用ntsysv命令利用文本图形界面对smb自动加载进行配置,如果要自动加载smb可以在其前面选中“*”,否则取消掉就不自动加载了哈

  
下面來做個列子,在/home下新建個test的作為共享目錄,打開smb.conf文件進行編輯: vim /etc/samba/smb.conf
這裡是更改工作組,服務器的描述。

  
 

這裡一定要注意哈,如果用share模式的話就是可以匿名訪問的,設置成user模式,就是要用戶名和密碼才能訪問的。

 
 

在最後添加上面的語句:comment 是共享的描述,path是目錄的絕對路徑,public是設置能否匿名訪問,編輯好后保存退出。

 
test目錄下新建個test.txt的文件。

 
  記得哈,修改了配置文件一定要重新加載才能生效的。

 
 
添加名為user1的用戶,設置密碼為123,添加到samba用戶。

 
 
 
輸入地址訪問: \\172.26.6.100\test 用戶:user1 密碼:123 成功訪問。
 
 
現在是只能訪問而不能修改或新建文件。要想使用戶可以修改,就要設置文件的權限,這裡設置為777,然後打開Samba配置文件,設置好共享的權限
 
設置好權限后用戶就可以修改了……

 
 
使用IP地址來限制用戶訪問:
hosts allow hosts deny 的使用方法,hosts allow hosts deny 字段的使用
hosts allow 字段定义允许访问的客户端,hosts deny 字段定义禁止访问的客户端
host denyhosts allow字段同时出现并定义滴内容相互冲突时,hosts allow优先。
 
hosts deny = 172.26.2. 表示禁止所有来自172.26.2.网段的IP地址访问
hosts allow = 172.26.2.28 表示允许172.26.2.28这个IP地址访问
 
hosts deny = 172.26.2.
hosts allow = 172.26.2.28 表示禁止所有来自 172.26.2.网段的 IP地址访问,但允許 172.26.2.28訪問,以為 hosts allow優先。這個可以根據實際要求靈活設置的,到這裡就基本上結束了。

  
糾結了很久,爲什麽在訪問共享目錄的時候也會看到用來登錄的用的home目錄也能看到呢? 原來是因為smb.cnf文件默認設置共享了,所以只要註釋掉語句就好了

   
在运行中输入 ”\\172.26.6.100” 可以看到共享目录,如果看不到共享目錄請關閉防火牆。
备注:但是不能进入共享目录,双击目录时,报錯誤ERROR
原因是,RHEL5selinux 挡住了,解决方法有两种:
如何开启或关闭SELinux
RedHat/etc/sysconfig/selinux
在新版本中的Red Hat Fedora 上,修改档案/etc/sysconfig/selinux:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
SELINUX设定为disable, 下次启动系统后将会停止SElinux
Linux 核心参数(Kernel Parameter)
或者可以在核心参数后加上: selinux=0 (停止)或 selinux=1 (开启)参数
档案/boot/grub/menu.lst
title Fedora Core (2.6.18-1.2798.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet selinux=0
initrd /initrd-2.6.18-1.2798.fc6.img
检查SELinux现时况态
要知到你现在是否使用 SELinux:
# getenforce
disabled