CentOS Linux中Samba文件共享服务器的构建
2009-07-03 09:58
239 查看
前 言
在我们使用 Windows 作为客户机的时候,通常有文件、打印共享的需求。作为Windows 网络功能之一,通常可以在 Windows 客户机之间通过 Windows Network 固有的功能实现这些要求。然而,通过 Samba 我们也可以让一台 CentOS 主机来兼容 Windows 网络,实现同样的功能,进而充分发挥 CentOS 主机的可用性。
本篇文档主要介绍怎样通过 Samba 服务器的构建实现 Windows 网络中的文件共享。
安装 Samba
首先,通过 yum 来在线安装 Samba 。
[root@sample ~]# yum -y install samba ← 安装 Samba
Setting up Install Process
Setting up repositories
update 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 73 kB 00:00
update : ################################################## 212/212
Added 212 new packages, deleted 0 old in 4.94 seconds
primary.xml.gz 100% |=========================| 569 kB 00:00
base : ################################################## 1500/1500
Added 1500 new packages, deleted 0 old in 28.97 seconds
primary.xml.gz 100% |=========================| 157 B 00:00
Added 0 new packages, deleted 0 old in 0.03 seconds
primary.xml.gz 100% |=========================| 32 kB 00:00
extras : ################################################## 124/124
Added 124 new packages, deleted 0 old in 1.93 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for samba to pack into transaction set.
samba-3.0.10-1.4E.9.i386. 100% |=========================| 101 kB 00:00
---> Package samba.i386 0:3.0.10-1.4E.9 set to be updated
--> Running transaction check
--> Processing Dependency: samba-common = 0:3.0.10 for package: samba
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for samba-common to pack into transaction set.
samba-common-3.0.10-1.4E. 100% |=========================| 37 kB 00:00
---> Package samba-common.i386 0:3.0.10-1.4E.9 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
samba i386 3.0.10-1.4E.9 base 13 M
Installing for dependencies:
samba-common i386 3.0.10-1.4E.9 base 5.0 M
Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 18 M
Downloading Packages:
(1/2): samba-common-3.0.1 100% |=========================| 5.0 MB 00:04
(2/2): samba-3.0.10-1.4E. 100% |=========================| 13 MB 00:11
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 443e1821
Public key for samba-common-3.0.10-1.4E.9.i386.rpm is not installed
Retrieving GPG key from http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
Importing GPG key 0x443E1821 "CentOS-4 key <centos-4key@centos.org>"
Key imported successfully
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: samba-common ######################### [1/2]
Installing: samba ######################### [2/2]
Installed: samba.i386 0:3.0.10-1.4E.9
Dependency Installed: samba-common.i386 0:3.0.10-1.4E.9
Complete!
配置 Samba
然后,通过编辑 /etc/samba/smb.conf ,根据需求配置 Samba。在这里,本文的原则是只将文件共享应用于内网,并让将要被共享的目录拥有充分的读写权限属性。
[root@sample ~]# vi /etc/samba/smb.conf ← 编辑 Samba 的配置文件
#======================= Global Settings =====================================
[global] ← 找到这一行(全局设置标签),在此行下面添加如下行:
dos charset = GB2312 ← 将 Windows 客户端的文字编码设置为简体中文 GB2312
unix charset = GB2312 ← 指定 Samba 所在的 CentOS 服务端新建文件或目录时的编码为 GB2312
display charset = GB2312 ← 指定使用 SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
directory mask = 0777 ← 指定新建目录的属性(以下4行)
force directory mode = 0777
directory security mask = 0777
force directory security mode = 0777
create mask = 0777 ← 指定新建文件的属性(以下4行)
force create mode = 0777
security mask = 0777
force security mode = 0777
workgroup = MYGROUP ← 找到此行,将工作组名称改为 Windows 网络所定义的工作组名
↓
workgroup = WORKGROUP ← 变为此状态,这里以 Windows XP 默认的“WORKGROUP”为例
; hosts allow = 192.168.1. 192.168.2. 127. ← 找到此行,去掉行首的“;”,并制定访问限制
↓
hosts allow = 192.168.0. 127. ← 变为此状态,指定内网IP地址及本地,只允许这两种情况的访问
然后在配置文件的末尾填如下几行,定义公众共享目录:
[public]
comment = Public Stuff
path = /home/samba ← 指定共享目录位置
public = yes
writable = yes ← 赋予共享目录写入权限的属性
接下来,创建将要通过 Samba 共享给 Windows 网络的专用目录。
[root@sample ~]# mkdir /home/samba ← 建立共享文件专用目录
[root@sample ~]# chown -R nobody. /home/samba ← 设置专用目录归属为 nobody
[root@sample ~]# chmod 777 /home/samba ← 将专用目录属性设置为 777
在进行到服务端的连接之前,需要预先对用于登录 Samba 的用户进行设置。这里我们以 CentOS 中 Samba 标准的 Samba 用户数据库管理工具“smbpasswd”为例,创建用于登录 Samba 的用户数据。这里需要注意的一点:用 smbpasswd 创建用户的前提是,系统用户中存在该用户 -- 在基于系统用户之上,才可以创建该用户在 Samba 用户数据库中的信息。
[root@sample ~]# smbpasswd -a centospub ← 将系统用户 centospub(例)加入到 Samba 用户数据库
New SMB password: ← 输入该用户用于登录 Samba 的密码
Retype new SMB password: ← 再次确认输入该密码
Added user centospub.
启动 Samba 服务
在启动 Samba 服务之前,首先将防火墙设置中 Samba 所用到的端口进行开放。
[root@sample ~]# vi /etc/sysconfig/iptables ← 编辑 iptables 配置文件
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT ← 找到此行,在下面添加如下行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 138 -j ACCEPT
[root@sample ~]# /etc/rc.d/init.d/iptables restart ← 重新启动 iptables ,使新的规则生效
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
最后,启动 Samba 服务。
[root@sample ~]# chkconfig smb on ← 设置 Samba 自启动
[root@sample ~]# chkconfig --list smb ← 确认 Samba 启动标签,确认 2-5 为 on 的状态
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sample ~]# /etc/rc.d/init.d/smb start ← 启动 Samba 服务
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
从 Windows 客户端连接到 Samba 服务器
在服务端启动 Samba 服务后,我们就可以从 Windows 客户端通过 Windows 网络连接到 Samba。这里以 Windows XP 为例,说明如下连接过程:
1、从桌面打开“网上邻居”,并点击“查看工作组计算机”选项;
2、确认出现 Samba 服务端的连接,并双击该连接;(本站文档的主机名以 Sample 为例)
3、输入在服务端预先设置好的 Samba 用户的用户名及密码;(用户名同系统用户名,密码需要输入在通过 smbpasswd 为该系统用户设置的 Samba 专用的密码。)
4、然后确认能够连接到 Samba 服务器,并出现根目录及 Samba 专用共享目录。
最后,在相应目录进行新建、修改以及删除文件的操作,测试相应权限的可操作性
在我们使用 Windows 作为客户机的时候,通常有文件、打印共享的需求。作为Windows 网络功能之一,通常可以在 Windows 客户机之间通过 Windows Network 固有的功能实现这些要求。然而,通过 Samba 我们也可以让一台 CentOS 主机来兼容 Windows 网络,实现同样的功能,进而充分发挥 CentOS 主机的可用性。
本篇文档主要介绍怎样通过 Samba 服务器的构建实现 Windows 网络中的文件共享。
安装 Samba
首先,通过 yum 来在线安装 Samba 。
[root@sample ~]# yum -y install samba ← 安装 Samba
Setting up Install Process
Setting up repositories
update 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 73 kB 00:00
update : ################################################## 212/212
Added 212 new packages, deleted 0 old in 4.94 seconds
primary.xml.gz 100% |=========================| 569 kB 00:00
base : ################################################## 1500/1500
Added 1500 new packages, deleted 0 old in 28.97 seconds
primary.xml.gz 100% |=========================| 157 B 00:00
Added 0 new packages, deleted 0 old in 0.03 seconds
primary.xml.gz 100% |=========================| 32 kB 00:00
extras : ################################################## 124/124
Added 124 new packages, deleted 0 old in 1.93 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for samba to pack into transaction set.
samba-3.0.10-1.4E.9.i386. 100% |=========================| 101 kB 00:00
---> Package samba.i386 0:3.0.10-1.4E.9 set to be updated
--> Running transaction check
--> Processing Dependency: samba-common = 0:3.0.10 for package: samba
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for samba-common to pack into transaction set.
samba-common-3.0.10-1.4E. 100% |=========================| 37 kB 00:00
---> Package samba-common.i386 0:3.0.10-1.4E.9 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
samba i386 3.0.10-1.4E.9 base 13 M
Installing for dependencies:
samba-common i386 3.0.10-1.4E.9 base 5.0 M
Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 18 M
Downloading Packages:
(1/2): samba-common-3.0.1 100% |=========================| 5.0 MB 00:04
(2/2): samba-3.0.10-1.4E. 100% |=========================| 13 MB 00:11
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 443e1821
Public key for samba-common-3.0.10-1.4E.9.i386.rpm is not installed
Retrieving GPG key from http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
Importing GPG key 0x443E1821 "CentOS-4 key <centos-4key@centos.org>"
Key imported successfully
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: samba-common ######################### [1/2]
Installing: samba ######################### [2/2]
Installed: samba.i386 0:3.0.10-1.4E.9
Dependency Installed: samba-common.i386 0:3.0.10-1.4E.9
Complete!
配置 Samba
然后,通过编辑 /etc/samba/smb.conf ,根据需求配置 Samba。在这里,本文的原则是只将文件共享应用于内网,并让将要被共享的目录拥有充分的读写权限属性。
[root@sample ~]# vi /etc/samba/smb.conf ← 编辑 Samba 的配置文件
#======================= Global Settings =====================================
[global] ← 找到这一行(全局设置标签),在此行下面添加如下行:
dos charset = GB2312 ← 将 Windows 客户端的文字编码设置为简体中文 GB2312
unix charset = GB2312 ← 指定 Samba 所在的 CentOS 服务端新建文件或目录时的编码为 GB2312
display charset = GB2312 ← 指定使用 SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
directory mask = 0777 ← 指定新建目录的属性(以下4行)
force directory mode = 0777
directory security mask = 0777
force directory security mode = 0777
create mask = 0777 ← 指定新建文件的属性(以下4行)
force create mode = 0777
security mask = 0777
force security mode = 0777
workgroup = MYGROUP ← 找到此行,将工作组名称改为 Windows 网络所定义的工作组名
↓
workgroup = WORKGROUP ← 变为此状态,这里以 Windows XP 默认的“WORKGROUP”为例
; hosts allow = 192.168.1. 192.168.2. 127. ← 找到此行,去掉行首的“;”,并制定访问限制
↓
hosts allow = 192.168.0. 127. ← 变为此状态,指定内网IP地址及本地,只允许这两种情况的访问
然后在配置文件的末尾填如下几行,定义公众共享目录:
[public]
comment = Public Stuff
path = /home/samba ← 指定共享目录位置
public = yes
writable = yes ← 赋予共享目录写入权限的属性
接下来,创建将要通过 Samba 共享给 Windows 网络的专用目录。
[root@sample ~]# mkdir /home/samba ← 建立共享文件专用目录
[root@sample ~]# chown -R nobody. /home/samba ← 设置专用目录归属为 nobody
[root@sample ~]# chmod 777 /home/samba ← 将专用目录属性设置为 777
在进行到服务端的连接之前,需要预先对用于登录 Samba 的用户进行设置。这里我们以 CentOS 中 Samba 标准的 Samba 用户数据库管理工具“smbpasswd”为例,创建用于登录 Samba 的用户数据。这里需要注意的一点:用 smbpasswd 创建用户的前提是,系统用户中存在该用户 -- 在基于系统用户之上,才可以创建该用户在 Samba 用户数据库中的信息。
[root@sample ~]# smbpasswd -a centospub ← 将系统用户 centospub(例)加入到 Samba 用户数据库
New SMB password: ← 输入该用户用于登录 Samba 的密码
Retype new SMB password: ← 再次确认输入该密码
Added user centospub.
启动 Samba 服务
在启动 Samba 服务之前,首先将防火墙设置中 Samba 所用到的端口进行开放。
[root@sample ~]# vi /etc/sysconfig/iptables ← 编辑 iptables 配置文件
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT ← 找到此行,在下面添加如下行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 138 -j ACCEPT
[root@sample ~]# /etc/rc.d/init.d/iptables restart ← 重新启动 iptables ,使新的规则生效
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
最后,启动 Samba 服务。
[root@sample ~]# chkconfig smb on ← 设置 Samba 自启动
[root@sample ~]# chkconfig --list smb ← 确认 Samba 启动标签,确认 2-5 为 on 的状态
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sample ~]# /etc/rc.d/init.d/smb start ← 启动 Samba 服务
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
从 Windows 客户端连接到 Samba 服务器
在服务端启动 Samba 服务后,我们就可以从 Windows 客户端通过 Windows 网络连接到 Samba。这里以 Windows XP 为例,说明如下连接过程:
1、从桌面打开“网上邻居”,并点击“查看工作组计算机”选项;
2、确认出现 Samba 服务端的连接,并双击该连接;(本站文档的主机名以 Sample 为例)
3、输入在服务端预先设置好的 Samba 用户的用户名及密码;(用户名同系统用户名,密码需要输入在通过 smbpasswd 为该系统用户设置的 Samba 专用的密码。)
4、然后确认能够连接到 Samba 服务器,并出现根目录及 Samba 专用共享目录。
最后,在相应目录进行新建、修改以及删除文件的操作,测试相应权限的可操作性
相关文章推荐
- Linux下的.NET之旅:第一站,CentOS+Mono+Xsp构建最简单的ASP.NET服务器
- Linux(centos)+Varnish+nginx+php(FastCGI)+MYSQL5+MenCache+MenCachedb构建大流量服务器集群
- Linux (CentOS 7.3) 下安装JAVA环境和Tomcat环境启动Tomcat服务器
- Linux CentOS SVN 设置钩子hooks/post-commit来同步更新服务器web目录,实现代码自动部署
- Linux_CentOS-服务器搭建 <四>
- Linux配置手册(三)构建samba文件共享服务器
- 在linux下构建CVS服务器
- linux syslog + cron 构建log服务器
- linux(centos7)下SVN服务器如何搭建
- 【转】Linux(CentOS)服务器上安装Webmin
- 阿里云服务器Linux Centos6.5搭建FTP服务器
- 阿里云ecs服务器Linux的centos搭建服务器记录
- Linux centos 服务器乱码问题
- centos 6.5 Linux搭建SVN服务器
- (转)Linux整合apache和tomcat构建Web服务器
- Linux配置手册(三)构建samba文件共享服务器
- linux(centos)搭建SVN服务器
- 最好的linux系统服务器版本CentOS介绍和FAQ
- Linux(Centos7.4和RHEL7.4)环境下基于chrony的NTP服务器的构建