samba服务器包括两个服务程序
smbd
smbd服务程序为客户机提供了服务器*享资源(目录和文件等)的访问
nmbd
nmbd服务程序提供了NETZBIOS主机名称的解析,为windows网络中域或者工作组内的主机进行主机名称的解析。
RHEL中缺省安装了Samba相关的软件包
samba-common 软件包中提供了samba服务器和客户机中都必须使用的公共文件
samba 软件包中包括了samba服务器程序的所有文件
samba-client 软件包中提供了samba客户机的所有文件
system-config-samba软件包中提供了Red Hat公司专门为samba服务器管理编写的图形界面的管理程序,该程序是redhat系统管理工具中的一部分。
samba服务器的主配置文件是smb.conf保存在/etc/samba中。
查看文件可以这样:
grep -v "^#" /etc/samba/smb.conf|grep -v "^;"
smb.conf文件内容
[global] #针对整个samba服务器生效
workgroup = MYGROUP #工作组名称
server string = Samba Server Version %v #服务器注释
security = user #user 用户级的安全级别,就是必须要用户名密码,share 表示用户不许要账户及密码即可登入samba服务器,server 表似乎检查账户及密码的工作指定由另一台windows服务器或samba服务器负责,domain表示指定windows域控制服务器来验证用户的账户及密码
passdb backend = tdbsam
log file= /var/log/samba/%m.log #对访问情况的日志记录 %m 客户端主机的名称
max log size = 50 #(kB)
load printers = yes
cups options = raw
[homes] #共享目录不特指某个目录,而是表示samba用户的宿主目录
comment = Home Directories #说明
browseable = no #不可浏览,表示所有samba用户的宿主目录不能被看到,只有登录用户才能看到自己的宿主目录共享,这样设置可以加强samba服务器的安全性
writable = yes #对登录后的用户具有写的权限
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
samba帐号管理
samba用户帐号使用独立的smbpasswd文件保存用户的帐号和加密口令信息
samba服务器中的用户帐号应该具有与其同名的linux系统用户帐号,因为samba用户是使用同名的系统帐号身份访问linux资源)(文件和目录)的
samba用户的口令和同名系统用户的口令是独立的,可以相同或不同,需要分别进行维护和更改
当samba用户不许要登录linux系统时,同名的系统用户帐号可不设置口令
samba服务器的用户帐号
samba服务器的用户帐号文件保存在/etc/samba目录中,文件名称是smbpasswd
初始状态smbpasswd文件不存在,在第一次使用smbpasswd命令创建smaba用户时自动创建
smbpasswd文件中同时保存有用户帐号和用户密码,因此该文件只对root用户有读写权限
smbpasswd命令
smbpasswd命令用于维护samba服务器的张华
添加帐号:
smbpasswd -a sambauser
禁用
smbpasswd -d sambauser
启用
smbpasswd -e sambauser
删除
smbpasswd -x sambauser
公共共享目录配置要求
在smb.conf添加名为[public]共享目录
公共共享目录的路径是/home/public
任何samba的用户都可一访问公共目录并对目录具有读写权限
任何用户在公共目录中都以linux中nobady系统用户的身份出现,既在公共目录中任何用户建立的文集那都属于nobady系统用户
smb.conf添加配置内容:
[public] #共享名为public
path= /home/public #真正的共享目录
public= yes #public设置为yes表示该共享目录对所有的samba用户可见
only guest = yes # 表示所有用户在使用该共享目录时的用户身份都是guest 即Linux系统用户nobody
writable = yes # 这是设置了可写的权限,但是设置了不一定就可以写了,还得看这个目录的权限,
测试smb.conf文件的内容
testparm命令是配置文件测试工具,可以对smb.conf配置文件的语法进行检测,并显示当前配置的清单
#testparm
启动samba服务器
service smb restart
smbclient
smbclient是samba服务器的命令行方式的登录客户端,使用的形式类似telnet和ftp命令
显示指定samba服务器中的共享资源列表
smbclient -L 192。168.0.2
以指定用户身份登录到指定服务器的指定共享目录
smbclient //192.168.0.2/st02 -U st02
//192.168.0.2/st02 表示服务器192.168.0.2中的共享目录st02
-U st02 表示以samba用户st02的身份进行登录
包依赖,所以先安装以下包
[root@redhat1 Server]# rpm -ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm
warning: perl-Convert-ASN1-0.20-1.1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:perl-Convert-ASN1 ########################################### [100%]
然后安装:
[root@redhat1 Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm
warning: samba-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:samba ########################################### [100%]
[root@redhat1 Server]# rpm -ivh samba-client-3.0.33-3.14.el5.i386.rpm
warning: samba-client-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:samba-client ########################################### [100%]
[root@redhat1 Server]# rpm -ivh samba-common-3.0.33-3.14.el5.i386.rpm
warning: samba-common-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
package samba-common-3.0.33-3.14.el5.i386 is already installed
[root@redhat1 Server]#
包安装完毕,
启动服务:
[root@redhat1 Server]# service smb restart
关闭 SMB 服务: [失败]
关闭 NMB 服务: [失败]
启动 SMB 服务: [确定]
启动 NMB 服务: [确定]
[root@redhat1 Server]# chkconfig smb on
[root@redhat1 Server]# smbclient //192.168.0.7/TDDOWNLOAD -U staid
Password:
Domain=[NCIST-V3ZT22PKZ] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]
smb: \>
smb: \>
smb: \> cd TDDOWNLOAD
cd \TDDOWNLOAD\: NT_STATUS_OBJECT_NAME_NOT_FOUND
smb: \> dir
. DR 0 Fri Jul 2 17:24:06 2010
.. DR 0 Fri Jul 2 17:24:06 2010
51CTO下载-PIX模拟器中文教程by网络刀客v1.0.pdf+.pdf A 789172 Thu Jul 1 10:18:04 2010
desktop.ini HS 164 Thu Jul 1 09:53:49 2010
dotnetfx3setup.exe A 52770576 Wed Mar 18 16:06:04 2009
dotnetfx3setup.zip A 52725300 Fri Jul 2 17:22:28 2010
FirefoxChinaEdition-latest.exe A 9386696 Thu Jul 1 10:45:17 2010
ravolpconline.exe A 82199664 Thu Jul 1 10:30:44 2010
wlsetup-all.exe A 139758928 Fri Jul 2 15:29:49 2010
38875 blocks of size 262144. 33820 blocks available
smb: \>
smbmount //192.168.0.7/TDDOWNLOAD /mnt/smbfile #此用法已经随着南方的大水一去不复返了
正确的用法是:
[root@redhat1 Server]# mount -t cifs -o username=staid,password=1234 //192.168.0.7/TDDOWNLOAD /mnt/smbfile
服务器端命令:smbstatus
用来显示当前主机中的samba服务器的链接状态信息
显示信息包括服务器的每个samba客户端ip地址,主机名称 登录用户名 锁定的文件等
[root@redhat1 samba]# which smbpasswd
/usr/bin/smbpasswd
[root@redhat1 samba]# rpm -qf /usr/bin/smbpasswd
samba-common-3.0.33-3.14.el5
[root@redhat1 samba]#
首先建立系统用户
[root@redhat1 samba]# useradd shasha
useradd:用户 shasha 已存在
[root@redhat1 samba]# smbpasswd -a shasha
New SMB password:
Retype new SMB password:
Added user shasha.
[root@redhat1 samba]#
没有在/etc/samba/目录中找到smbpasswd文件
看一下我的smb.conf配置文件:
[root@redhat1 /]# cat /etc/samba/smb.conf|egrep -v "^#|^;"
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
log file = /var/log/samba/%m.log
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[homes]
comment = Home Directories
browseable = no
writable = yes
[public]
comment = Public Stuff
path = /smbpublic #我创建了一个目录/smbpublic 然后在这儿把他共享出来
public = yes
writable = yes
printable = no
write list = @shasha #shasha这个组的用户都可以登录
[root@redhat1 /]#
这样,我们在workgroup组内的任何一台计算机*问smb服务器,用shasha组中的账户登录,都可以登录到smb服务器上的共享目录中来
本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/356770,如需转载请自行联系原作者