首页 > 代码库 > linux基础命令学习(七)samba服务器配置

linux基础命令学习(七)samba服务器配置

samba有五种安全级别,它们分别是:

      share:不需要samba账户就可登陆samba服务器
      user:需要添加samba账户才可以登陆samba服务器
      server:由另外一台samba服务器来对用户进行身份验证。 
      domain:把samba服务器加入到NT域,由NT的域控制器来进行身份验证。
      ADS:Active Directory Service,活动目录服务,它是samba3.0中新增的身份验证方式。采用ADS验证方式,samba服务器集成到活动目录中。

以上是它的五个运行级别;share,user这二个级别适合用小型部门,如网吧、企业内部局域网等,也是samba常用的级别。

(一) samba组件安装:

1)首先用“rpm –qa |grep samba”命令检验系统samba服务是否安装。

#rpm –qa |grep samba

samba-common-3.0.0.15.i386.rpm

samba-client-3.0.0-15.i386.rpm

samba-3.0.0-15.i386.rpm

 

 

2)如果没有显示samba(版本)信息,则说明没有安装,利用“RedHat Linux安装光盘”里自带的RPM包进行安装(也可自己在网上下载相关的版本包进行安装)。

# rpm -ivh samba-common-3.0.0.15.i386.rpm
# rpm -ivh samba-client-3.0.0-15.i386.rpm
# rpm -ivh samba-3.0.0-15.i386.rpm

 

此外还有一个工具就是图形界面的Swat。
要是用这个工具﹐大家还要修改一处﹐就是﹕
vi /etc/xinetd.d/swat把其中的
disable = yes
改为
disable = no就可以了。

 

rpm -ivh samba-swat-3.0.0-15.i386.rpm

(二) share级别的samba的配置
这个级别的samba很简单,首先它不需要以用户和密码来验证登陆,所以就不必去配置samba用户了

下面是实例:

#service smb start        // 启动samba
#cp /etc/samba/smb.conf /etc/samba/smb.conf.bak     // 备份samba的配置文件
#vi /etc/samba/smb.conf

// 找到 security = user 将它改成 security = share

#service smb restart             // 重启samba服务器

打开“我的电脑”,输入  \192.168.1.88  sabma服务器的地址
 
此时samba服务器上任没有设置任何共享目录。

下面在服务器上设置一个名为test的共享目录
#mkdir /test
#chmod 777 /test //让所有用户具有完全权限

#vi /etc/samba/smb.conf 
找到 security = user 将它改成 security = share

把光标移动配置文件的最后一行,在下面加入以下配置
 [test]    //共享名
    comment = test resource //共享目录的注释
    path = /test     //共享目录的路径
    writable = yes   //是否允许写入
    public = yes     //是否允许guest访问

#service smb restart             // 重启samba服务器

这时输入   \192.168.1.88

可以看到刚才增加的名为test的共享目录,此目录任何人有“完全权限” 
如果需要共享其它目录,可照此设定。

(三) user级别的samba的配置.

  Share级别的samba无需samba用户就可以访问服务器,而user级别的samba则需以samba用户和密码才能访问,所以我们先要设定一个samba用户,如下:

#useradd cc   //添加cc用户
#passwd cc   //设置cc用户的口令
#smbpasswd –a cc  //将cc用户添加为samba用户

#mkdir /cc   //建立/cc 目录,此目录就是要共享的目录 
#chown cc.cc /cc   //让cc用户成为/cc目录的属主

#vi /etc/samba/smb.conf 
  // 找到 security = share 将它改成 security = user 

把光标移动配置文件的最后一行,在下面加入以下配置

[bb]  //共享名,特意取名为bb,以区别于cc的home共享
comment = cc resource 
path = /cc 
writable = yes 
valid users = cc
public = no

#service smb restart             // 重启samba服务器

这时输入   \192.168.1.88,会弹出用户验证对话框

 提示输入samba用户和密码,输入用户名:cc 和密码,进入这时会看到多了“bb”、“cc”这二个共享,其中bb是刚才添加的samba共享,“cc”是cc用户的家目录共享。

[注] 在windows中添加cc用户,然后注销administrator,以cc用户的身份登录,访问samba服务器时,则不会出现用户登录对话框,不用输入用户名和密码而能直接浏览共享资源。下图是在windows中以用户cc登录后,输入 \192.168.1.88 直接进入的画面。在windows中以administrator身份登录后访问samba资源,之所以会出现登录对话框,是因为administrator没有对应的samba帐户。
 


如果不想使用“cc”用户的家目录共享,可以进行如下设置:

#vi /etc/samba/smb.conf

找到如下语句: 
[homes] 
                  comment = Home Directories 
                  browseable = no 
                  writable = yes

在每行的前面加上注释符号“;”

;[homes] 
;   comment = Home Directories 
;   browseable = no 
;   writable = yes

#service smb restart             // 重启samba服务器

这时输入 \192.168.1.88 

此时只剩下我们人为添加的bb共享,而家目录共享cc已经不存在了
[注] samba共享的访问权限受samba和linux操作系统的双重制约。即使在samba中已经开通了某个用户对于某个目录的访问权限,但如果samba用户所对应的linux用户没有该目录的访问权限,此时仍然不能访问该共享目录 

分享目录参数

 

v [分享名称]:这个分享名称很重要,它是一个“代号”而已。例如,您在Windows中使用“共享”来分享网上邻居时,假设您将“D:\game”分享出来,系统还会要您输入一个“在网络上面的名称”,假设您输入My_Games,那么以后在网上邻居看到的文件夹(D:\game)名称其实是“\\您的IP\My_Games”。

 

comment:这个目录的说明。

 

path:在网上邻居中显示的名称中实际进入的Linux文件系统。也就是说,在网上邻居中看到的是“[共享]”的名称,而实际操作的文件系统则是在path中设置的。

 

 read only:设置是否只读。

 

 public:设置是否让所有可以登录的用户看到这个项目。

 

writable:设置是否可以写入,这里需要注意一下,read only与writable是相似的设置值。如果writable在这里设置为NO,亦即不可写入,那与read only将互相矛盾了,哪个才是正确的设置?答案是:最后出现的那个设置值为主要的设置。

 

write list:指定能读取和写该共享资源的用户和组

 

valid users:指定能够进入到此资源的特定用户。