(如果按本文操作后,仍不能正常的访问, 请关闭 Selinux 和 关闭防火墙 )
在Unix Like 上面可以分享档案数据的 file system 是 NFS,那么在 Windows上面使用的『网络邻居』所使用的档案系统则称为Common Internet File System, CIFS
简介
l Samba服务器在UNIX系统中实现了SMB/CIFS 协议
l 通过Samba服务可以实现UNIX/Linux主机与Windows主机之间的资源互访
l samba是一个工具套件,在Unix上实现SMB(Server Message Block)协议,或者称之为NETBIOS/LanManager协议。SMB协议通常是被windows系列用来实现磁盘和打印机共享。
l Windows主机可以将Samba服务器主机作为文件服务器,访问其中的共享文件
l Linux主机使用Samba客户端软件可以访问Windows主机中的共享文件
1. 使用rpm –qa | grep samba 查询是否安装了samba 服务套件
2. Red Hat 9 对于SAMBA 这个服务器总共需要至少三个套件,分别是:
l samba:这个套件主要包含了SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 ( document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等;
l samba-common:这个套件则主要提供了SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 ( testparm )等等;
l samba-client:这个套件则提供了当Linux 做为SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 档案格式的执行档 smbmount等等。
3. Fedora 14中缺省安装了Samba相关的软件包
l samba-common软件包中提供了Samba服务器和客户机中都必须使用的公共文件
l samba软件包中包括了Samba服务器程序的所有文件
l samba-client 软件包中提供了Samba客户机的所有文件
l system-config-samba软件包中提供了Red Hat公司专门为Samba服务器管理编写的图形界面的管理程序,该程序是Red Hat系统管理工具中的一部分
4. 使用yum 命令来安装
Yum install samba来安装
也可以 分开为:
yum install samba-common
yum install samba-client
yum install samba-config-samba
yum install samba
打开samba服务 service smb start
查看samba服务状态 servicesmb status
重启samba服务 service smb restart
关闭samba服务 service smb stop
可以在系统→管理→服务 中设置为开机启动服务
搭建Samba服务器,实现Linux与Windows资源共享注意事项:请先关闭Linux下的防火墙和SELinux服务!另外,Windows下的防火墙和杀毒软件也有可能导致连接失败。如果搭建步骤正确,而连接失败,可以尝试将防火墙和杀毒软件暂时关闭,待实验完毕后,再重新打开。
1. 添加共享目录
可以勾上 为所有人提供访问
2. 添加用户
3. Windows下 访问samba 共享目录
\\ 你linux服务器的IP地址
按照提示,输入在samba 用户添加中添加的用户名和密码。打开如下图:
Samba使用/etc/samba/smb.conf作为它的配置文件。如果你改变了这个配置文件,这个改变直到你使用servicesmb restart命令重启Samba守护进程后才会生效。
要指定Windows工作组和对它的简短描述,编辑/etc/samba/smb.conf 文件中的以下几行:
workgroup = WORKGROUPNAME
server string = BRIEF COMMENT ABOUT SERVER
把WORKGROUPNAME换成你的机器所属的Windows工作组名。BRIEFCOMMENT ABOUT SERVER是可选的,它被用作关于Samba系统的Windows注释。
要在你的Linux系统上创建Samba共享目录,在/etc/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。
加密口令
要在你的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、或服务配置工具来在运行时间启用它。
n 阅读/usr/share/doc/samba-/docs/htmldocs/ENCRYPTION.html 来进一步了解有关加密口令的信息。(替换你安装了的 Samba 版本号码)。
n 当使用了 passwd 命令后,pam_smbpassPAM模块能够被用来同步用户的 Samba口令和他们的系统口令。如果用户启用了passwd命令,他用来登录到RedHatLinux系统的口令以及他要连接 Samba 共享所必须提供的口令就会被改变。
n 要启动这个功能,把以下行添加到 /etc/pam.d/system-auth 的启动 pam_cracklib.so 之下:passwordrequired /lib/security/pam_smbpass.so nullok use_authtok try_first_pass
n 可以使用chkconfig、ntsysv或服务配置工具来配置要在引导时启动的服务。