分类: LINUX
2011-08-08 14:50:48
yum install samba
配置好/etc/samb/smb.conf后不要忘记用smbpasswd -a user来设定访问的用户和他登录的密码。
Samba使用/etc/samba/smb.conf作为它的配置文件。如果
你改变了这个配置文件,这个改变直到你使用service smb
restart命令重启Samba守护进程后才会生效。要指定Windows工作组和对它的简短描述,编辑 smb.conf 文件中的以下几行:
workgroup = WORKGROUPNAME
server string = BRIEF COMMENT ABOUT SERVER
把WORKGROUPNAME换成你的机器所属的Windows工作组名。BRIEFCOMMENT ABOUT SERVER 是可选的,它被用作关于Samba系统的Windows注释。
要在你的Linux系统上创建Samba共享目录,在smb.conf文件中添加以下几行(根据你和你的系统需要修改了该文件之后):
[sharename]
comment = Insert a comment here
path = /home/share/
valid users = tfox carole
public = no
writable = yes
printable = no
create mask = 0765
上面的例子允许用户 tfox 和 carole 从 Samba 客户中读写 Samba 服务器上的目录 /home/share。
加密口令
在 Red Hat Linux 9中,加密口令被默认启用,因为它更安全。如果加密口令没有被使用,纯文本口令就会被使用,它能够被别人使用网络分组嗅探器来截取。建议你使用加密口令。
Microsoft
SMB协议最初使用纯文本口令。然而,带有服务包3或更高的 Windows NT 4.0、Windows 98、Windows
2000、Windows ME、以及 Windows
XP要求加密的Samba口令。要在RedHatLinux系统和运行以上Windows操作系统的系统间使用Samba,你可以编辑Windows注册
器来使用纯文本口令过配置你的Linux系统的Samba来使用加密口令。如果你选择要修改你的注册器,你必须为你的全部Windows机器这么做—这很
冒险,有可能导致进一步的冲突。为了更高的安全性,推荐你使用加密口令。
要在你的RedHatLinux系统上配置Samba使用加密口令,遵循以下步骤:
1.为 Samba 创建一个单独的口令文件。要根据你的现存 /etc/passwd 文件来创建,在 shell 提示下键入以下命令:
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
如果系统使用 NIS,键入以下命令:
ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
mksmbpasswd.sh 脚本和 samba 软件包一起被安装在你的 /usr/bin 目录上。
2.改变Samba口令文件的权限许可,因此只有根用户才有读写权限:
chmod 600 /etc/samba/smbpasswd
3.
这个脚本不会把用户口令复制到新文件,Samba用户账号在没有设置口令之前不会被激活。为了更高的安全性,建议你把用户的 Samba
口令设置为不同于用户的 Red Hat Linux 口令的口令。要设置每个 Samba 用户的口令,使用以下命令(把 username
替换为每个用户的用户名):
smbpasswd username
4.加密口令必须在Samba配置文件中被启用。在smb.conf文件中,请确定以下行没有被注释掉:
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
5.在 shel提示下键入 service smb restart来确定smb服务被启动。
6.如果你想让 smb 服务被自动启动,使用 ntsysv、chkconfig、或 服务配置工具来在运行时间启用它。
窍门
阅读 /usr/share/doc/samba-/docs/htmldocs/ENCRYPTION.html 来进一步了解有关加密口令的信息。(替换你安装了的 Samba 版本号码)。
当
使用了 passwd 命令后,pam_smbpass PAM模块能够被用来同步用户的
Samba口令和他们的系统口令。如果用户启用了passwd命令,他用来登录到RedHatLinux系统的口令以及他要连接 Samba
共享所必须提供的口令就会被改变。
要启动这个功能,把以下行添加到 /etc/pam.d/system-auth 的启动
pam_cracklib.so 之下:password required /lib/security/pam_smbpass.so
nullok use_authtok try_first_pass
启动和停止服务器
在通过Samba共享目录的服务器上必须运行 smb 服务。
使用以下命令来查看 Samba 守护进程的状态:
/sbin/service smb status
使用以下命令来启动守护进程:
/sbin/service smb start
使用以下命令来停止守护进程:
/sbin/service smb stop
要在引导时启动 smb 服务,使用以下命令:
/sbin/chkconfig --level 345 smb on
你还可以使用chkconfig、ntsysv或服务配置工具来配置要在引导时启动的服务
(6)支持SSL安全套接层协议
4.2 安装和启动Samba
Samba 软件安装在Linux 一端。目前主要由一个20人左右的Samba 团队负责维护及开发,用户可以在站点获得Samba的详细信息。同时,也可以在网页上下载Samba 的最新版本
4.2.1 安装Samba服务器
如果用户在安装Linux 时已经安装了Samba ,就无需再安装了可以通过下列命令确定是否已经安装了Samba 。
[root@ smb_server root]# rpm –qa | grep samba
samba-commom -2.2.7a-7.9.0
samba-2.2.7a-7.9.0
samba-client-2.2.7a-7.9.0
redhat-config-samba-1.0.4-1
samba-swat-2.2.7a-7.9.0
若出现这5个软件包,则表示已经安装了Samba ,否则必须安装Samba 。
[root@smb_server root]# mount /dev/cdrom /mnt/cdrom
将光盘挂载到 /mnt/cdrom目录]
[root@smb_server root]# cd /mnt/cdrom/RedHat/RPMS
切换到放置rpm文件的目录
[root@smb_server root]# rpm -ivh samba-commom -2.2.7a-7.9.0i386.rpm
这是Samba 必备的程序,必须安装
[root@smb_server root]# rpm -ivh samba-2.2.7a-7.9.0.i386.rpm
安装Samba 服务器程序,可以使我Windows 主机访问Samba 服务器共享的资源。
如果需要使Linux 主机访问Windows 主机上的共享资源,则还应该安装Samba 客户端程序。
[root@smb_server root]# rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm
4.2.2 Samba的全局参数的配置
Samba 最主要的配置文件是 /etc/samba/smb.conf,其中有很多选项可以设置,但作为初学者,只需要掌握其中一小部分选项的设置就可以配置所需要的Samba服务器 了。在了解基本配置的基础上,就能很快架设一个基本的Samba服务器。在基本配置文件中,也只用到其中一小部分命令选项。
全局参数的配置在[global]字段中,没有出现(或被注释)的参数,Samba 采用的是默认配置。
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#================== Global Settings ============================
[global]
#这是配置文件中关于全局参数的设置部分。
…………
workgroup = SMBGROUP
#这是设置服务器所要加入的工作组的名称,会在Windows 的“网上邻居”中能看到MYGROUP工作组,可以在此设置所需要的工作组的名称。
netbios name=smb-server
#设置出现在“网上邻居”中的主机名。默认情况下,则使用真正的主机名。
server string = Samba Server
#这是设置服务器主机的说明信息,当在Windows 的“网上邻居”中打开Samba 上设置的工作组时,在Windows 的资源管理器窗口,会列出“名称”和“备注”栏,其中“名称”栏会显示出Samba服务器的NetBios名称,而“备注”栏则显示出此处设置的“Samba Server”。当然,可以修改默认的“Sambe Server”,使用自己的描述信息。
hosts allow = 192.168.1. 127
#这里是设置允许什么样的IP地址的主机访问Samba服务器。默认的情况下,hosts allow选项被注释,表示允许所有IP地址的主机访问。
guest account = pcguest
#设置当访问那些被设置了“guest ok=yes”参数的资源时所要使用的帐号名。默认的帐号为”nobody”,如果不想用默认的值,则应该去掉注释用的分号,用你想要的帐号(如pcguest、 zhangsan等 ),然后,你必需将这一新帐号加入到/etc/passwd文件中去。
client code page=950
设置客户端访问Samba 服务器时所使用的字符编码表(code page),默认值为850,如果Samba 服务器要使用年中文名称来来命名共享的资源,要将此值改为950
log file = /var/log/samba/%m.log
#这一选项要求Samba服务器为每一个连接的机器使用一个单独的日志文件,指定文件的位置,名称。Samba会自动将%m转换成连接主机的NetBios名。
max log size = 0
指定日志文件的最大容量(以KB为单位),设置为0,表示没有限制。默认值为5000。
max disk size =1000
#设置能够共享的最大磁盘空间,单位为MB,默认值为0,表示不作任何限制。
max open file =100
#设置同一客户端最多能打开文件的数目,默认值为10000个。
security = user
#设置Samba服务器的安全等级。默认情况下,使用user等级。
#Samba服务器一共有四种安全等级。
share: 使用此等级,用户不需要帐号及密码可以登陆Samba服务器。
user: 使用此等级,由提供服务的Samba服务器检查用户帐号及密码。
server: 使用此等级,检查帐号及密码的工作可指定另一台Samba服务器负责。
domain: 使用此等级,需要指定一台Windows NT/2000/XP服务器(通常为域控制器),以验证用户输入的帐号及密码。
; password server =
#如果安全等级为“server”或“domain”,则使用此选项指定要验证密码的主机名。
password level = 8
username level = 8
#设置当验证用户口令和帐号时最多允许几个大小写字不同。默认值为0。
encrypt passwords = yes
#设置当Samba客户端将帐号及密码传送到服务器端时,是否采取密码加密的方式。客户的操作系统如果是Windows 95 OSR2 及NT SP3以后的版本,应该将此选项的值设为yes,默认值为no。
smb passwd file = /etc/samba/smbpasswd
#设置在Samba服务器上存放加密的密码文件的位置(注意:Samba服务器与Linux采用不同的密码文件)。
4.2.3 设置Samba密码文件
smb.conf 文件中有“smb password file =/ect/samba/smbpassword”一行设置项,现在就要创建该设置项所指定的/ect/samba/smbpassword密码文件(若是用Windows NT/2000Server 来验证密码,则可以跳过此段内容)。以root帐号登录,然后按下列步骤进行:
[root@smb_server root]#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
[root@ smb_server root]# chmod 500 /etc/samba
[root@ smb_server root]# chmod 600 /etc/samba/smbpasswd
此步骤是将未加密的/etc/passwd文件转换成加密的smbpasswd文件。基于保密的原则,将/etc/samba目录的权限设为500,该文件的权限设为600,以避免他人取得密码文件。
完成之后再利用smbpasswd命令,设置/ect/samba/smbpassword文件中每个帐号所使用的密码。(下面以fred为例。注意:此处设置的密码是fred要访问Samba服务器的密码,并非登录Linux 主机的密码,默认设置”UNIX password sync=YES”, 则登录Linux 主机的密码将改变,与Samba服务器的密码一致,如果希望这两个密码不一致,则设置”UNIX password sync=NO”)
[root@smb_server root]# smbpasswd fred
New SMB password: 此处输入密码
Retype SMB password: 重新输入密码
Password changed for user fred 看到这一句表示密码设置成功。
4.2.4 启动Samba服务器
可以执行下面的命令来启动Samba服务器:
[root@ smb_server Root]# service smb start
当能看到下面的显示,就表示启动成功。