共计 9044 个字符,预计需要花费 23 分钟才能阅读完成。
为了实现 Windows 主机与 Linux 服务器之间的资源共享,Linux 操作系统提供了 Samba 服务,Samba 服务为两种不同的操作系统架起了一座桥梁,使 Linux 系统和 Windows 系统之间能够实现互相通信,为广泛的 Linux 爱好者提供了极大方便。本文简要介绍如何在 Linux 操作系统上搭建 Samba 服务器和简单配置。
1、服务查询
默认情况下,Linux 系统在默认安装中已经安装了 Samba 服务包的一部分,为了对整个过程有一个完整的了解,在此先将这部分卸载掉。使用命令
rpm -qa | grep samba,默认情况下可以查询到两个已经存在的包:
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
2、卸载 Samba
用 rpm -e 将两个包卸载掉。对于 samba-common-3.0.33-3.7.el5,因为与其它 rpm 包之间存在依赖关系,所以必须加参数 - f 和 –nodeps,- f 是指强制,–nodeps 是指不检查依赖关系,具体完整命令为:
rpm -e samba-common-3.0.33-3.7.el5 -f –nodeps
rpm -e samba-client-3.0.33-3.7.el5 -f –nodeps
3、安装 Samba4 和 samba4-client
用以下命令安装:
[root@linuxidc ~]# yum install samba4
[root@linuxidc ~]# yum install samba4-winbind
[root@linuxidc ~]# yum install samba4-client
[root@linuxidc ~]# yum install samba4-devel
安装完成后,使用命令 rpm -qa | grep samba 进行查询,发现搭建 samba 服务器所依赖的所有服务器都已经安装好了即可。
4、配置 smb.conf 文件
Samba 的配置文件一般就放在 /etc/samba 目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是 samba 服务非常重要的核心配置文件,完成 samba 服务器搭建的大部分主要配置都在该文件中进行。
Samba 服务器的工作原理是:客户端向 Samba 服务器发起请求,请求访问共享目录,Samba 服务器接收请求,查询 smb.conf 文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。
实例操作:如何通过 samba 共享 linux 文件目录:
第一步:修改配置文件
首先备份一下 samba 的配置文件
cd /etc/samba
cp smb.conf smb.confbak
然后重新创建一个 smb.conf 文件
vim smb.conf
然后我们把这段写入 smb.conf 中
[global] #全局设置
workgroup = WORKGROUP
netbios name = MYSERVER
server string = Samba Server TestServer
security = share
[shared_name] #共享名称
comment = #注释信息
path = #共享目录的路径
browseable = #是否可以浏览(yes|no)
read only = #是否只读(yes|no)
writable = #是否可写(yes|no)
write list = user1,user2,@group,+group #定义可写列表,可以是用户或者组
valid users = #定义白名单
invalid users = #定义黑名单
注解:
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是 Windows 中显示的工作组;在这里我设置的是 LINUXSIR(用大写);
netbios name 就是在 Windows 中显示出来的计算机名;
server string 就是 Samba 服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了 share;验证方式有好多种,这是其中一种;另外一种常用的是 user 的验证方式;如果用 share 呢,就是不用设置用户和密码了;
[shared_name] 这个在 Windows 中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable = 是否可写,这里我设置为可写;
browseable = 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable = no
guest ok = 匿名用户是否允许以 guest 身份是登录;
第二步:建立目录并设置好权限
[root@linuxidc samba]# mkdir /share/test -pv #递归建立目录
mkdir: 已创建目录“/share”
mkdir: 已创建目录“/share/test”
修改 samba 配置文件,在最后面增加以下几行:
[root@linuxidc samba]# vim smb.conf
[tools]
comment = Share Testing
path = /share/test
public = yes
writable = yes
[root@linuxidc samba]# testparm #查看测试配置文档是否有问题
Load smb config files from /etc/samba/smb.conf
Processing section “[homes]”
Processing section “[printers]”
Processing section “[tools]”
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
server string = Samba Server Version %v
passdb backend = tdbsam
log file = /var/log/samba/%m.log
max log size = 50
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No
[tools]
comment = Share Testing
path = /share/test
read only = No
guest ok = Yes
第三步:启动 smbd 和 nmbd 服务器;
[root@linuxidc samba]# service smb start #启动 samba 服务
启动 SMB 服务: [确定]
启动 NMB 服务: [确定]
[root@linuxidc samba]# service nmb start # 启动 nmbd 服务
启动 NMB 服务: [确定]
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-04/142614p2.htm
第四步:把相关需要访问共享的用户设置为 samba 服务用户
[root@linuxidc samba]# smbpasswd -a Hadoop #把系统已存在的用户 hadoop 设置为 samba 服务的用户
New SMB password: # 设置访问共享的密码,此密码最好跟系统用户的登录密码不同
Retype new SMB password:
Added user hadoop. # 添加成功
[root@linuxidc samba]# ll
总计 52
-rw-r–r– 1 root root 20 2009-05-29 lmhosts
-rw——- 1 root root 4096 03-22 10:14 passdb.tdb # 已经生成了密码数据库 文件
-rw——- 1 root root 8192 03-22 10:14 secrets.tdb # 已经生成了安全密钥数据库 文件
-rw-r–r– 1 root root 9733 03-22 09:10 smb.back
-rw-r–r– 1 root root 9839 03-22 10:09 smb.conf
-rw-r–r– 1 root root 97 2009-05-29 smbusers
通过 windows 客户端访问测试结果如下,成功访问共享目录:
由于 tools 目录暂时没有给 hadoop 用户写权限,所以暂时无法再该目录下新建文件,需先修改 tools 目录的访问权限:
[root@johntest samba]# setfacl -m u:hadoop:rwx /share/test/ #给用户 hadoop 设置 facl 权限,使得对 test 目录具有读写执行权限。
扩展:
linux 系统如何访问 windows 共享文件
smbclient #访问 windows 共享命令
-L NetBIOS_Name #接主机名或 IP 地址
-U username #接访问共享的用户名
[root@linuxidc ~]# smbclient -L 10.109.134.247 -U j0701130
Enter j0701130’s password:
Domain=[KS01-IT-521] OS=[Windows 10 Pro 10586] Server=[Windows 10 Pro 6.3]
Sharename Type Comment
——— —- ——-
IPC$ IPC 远程 IPC
ISO Disk
Oracle Disk
工具 Disk
session request to 10.109.134.247 failed (Called name not present)
session request to 10 failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)
NetBIOS over TCP disabled — no workgroup available
[root@linuxidc ~]# smbclient //10.109.134.247/iso -U j0701130
# 以 j701130 用户访问 10.109.134.247 的共享目录 iso
Enter j0701130’s password:
Domain=[KS01-IT-521] OS=[Windows 10 Pro 10586] Server=[Windows 10 Pro 6.3]
smb: \> # 登录成功
[root@linuxidc ~]# yum install samba4-swat #安装 web 界面控制 samb 服务器
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package samba4-swat.i686 0:4.0.0-58.el6.rc4 will be installed
–> Processing Dependency: xinetd for package: samba4-swat-4.0.0-58.el6.rc4.i686
–> Running transaction check
—> Package xinetd.i686 2:2.3.14-39.el6_4 will be installed
–> Finished Dependency Resolution
………
Installed:
samba4-swat.i686 0:4.0.0-58.el6.rc4
Dependency Installed:
xinetd.i686 2:2.3.14-39.el6_4
[root@linuxidc ~]# service xinetd start
正在启动 xinetd: [确定]
[root@linuxidc ~]# chkconfig swat on
[root@linuxidc ~]# chkconfig –list
……..
svnserve 0: 关闭 1: 关闭 2: 关闭 3: 关闭 4: 关闭 5: 关闭 6: 关闭
sysstat 0: 关闭 1: 启用 2: 启用 3: 启用 4: 启用 5: 启用 6: 关闭
udev-post 0: 关闭 1: 启用 2: 启用 3: 启用 4: 启用 5: 启用 6: 关闭
winbind 0: 关闭 1: 关闭 2: 关闭 3: 关闭 4: 关闭 5: 关闭 6: 关闭
xinetd 0: 关闭 1: 关闭 2: 关闭 3: 启用 4: 启用 5: 启用 6: 关闭
ypbind 0: 关闭 1: 关闭 2: 关闭 3: 关闭 4: 关闭 5: 关闭 6: 关闭
基于 xinetd 的服务:
chargen-dgram: 关闭
chargen-stream: 关闭
daytime-dgram: 关闭
daytime-stream: 关闭
discard-dgram: 关闭
discard-stream: 关闭
echo-dgram: 关闭
echo-stream: 关闭
rsync: 关闭
swat: 启用
tcpmux-server: 关闭
time-dgram: 关闭
time-stream: 关闭
[root@linuxidc ~]# service xinetd restart
停止 xinetd:[确定]
正在启动 xinetd:[确定]
配置文件路径为:/etc/xinetd.d/swat
通过客户端访问 web 界面的 samb 服务:
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142614.htm
为了实现 Windows 主机与 Linux 服务器之间的资源共享,Linux 操作系统提供了 Samba 服务,Samba 服务为两种不同的操作系统架起了一座桥梁,使 Linux 系统和 Windows 系统之间能够实现互相通信,为广泛的 Linux 爱好者提供了极大方便。本文简要介绍如何在 Linux 操作系统上搭建 Samba 服务器和简单配置。
1、服务查询
默认情况下,Linux 系统在默认安装中已经安装了 Samba 服务包的一部分,为了对整个过程有一个完整的了解,在此先将这部分卸载掉。使用命令
rpm -qa | grep samba,默认情况下可以查询到两个已经存在的包:
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
2、卸载 Samba
用 rpm -e 将两个包卸载掉。对于 samba-common-3.0.33-3.7.el5,因为与其它 rpm 包之间存在依赖关系,所以必须加参数 - f 和 –nodeps,- f 是指强制,–nodeps 是指不检查依赖关系,具体完整命令为:
rpm -e samba-common-3.0.33-3.7.el5 -f –nodeps
rpm -e samba-client-3.0.33-3.7.el5 -f –nodeps
3、安装 Samba4 和 samba4-client
用以下命令安装:
[root@linuxidc ~]# yum install samba4
[root@linuxidc ~]# yum install samba4-winbind
[root@linuxidc ~]# yum install samba4-client
[root@linuxidc ~]# yum install samba4-devel
安装完成后,使用命令 rpm -qa | grep samba 进行查询,发现搭建 samba 服务器所依赖的所有服务器都已经安装好了即可。
4、配置 smb.conf 文件
Samba 的配置文件一般就放在 /etc/samba 目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是 samba 服务非常重要的核心配置文件,完成 samba 服务器搭建的大部分主要配置都在该文件中进行。
Samba 服务器的工作原理是:客户端向 Samba 服务器发起请求,请求访问共享目录,Samba 服务器接收请求,查询 smb.conf 文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。
实例操作:如何通过 samba 共享 linux 文件目录:
第一步:修改配置文件
首先备份一下 samba 的配置文件
cd /etc/samba
cp smb.conf smb.confbak
然后重新创建一个 smb.conf 文件
vim smb.conf
然后我们把这段写入 smb.conf 中
[global] #全局设置
workgroup = WORKGROUP
netbios name = MYSERVER
server string = Samba Server TestServer
security = share
[shared_name] #共享名称
comment = #注释信息
path = #共享目录的路径
browseable = #是否可以浏览(yes|no)
read only = #是否只读(yes|no)
writable = #是否可写(yes|no)
write list = user1,user2,@group,+group #定义可写列表,可以是用户或者组
valid users = #定义白名单
invalid users = #定义黑名单
注解:
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是 Windows 中显示的工作组;在这里我设置的是 LINUXSIR(用大写);
netbios name 就是在 Windows 中显示出来的计算机名;
server string 就是 Samba 服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了 share;验证方式有好多种,这是其中一种;另外一种常用的是 user 的验证方式;如果用 share 呢,就是不用设置用户和密码了;
[shared_name] 这个在 Windows 中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable = 是否可写,这里我设置为可写;
browseable = 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable = no
guest ok = 匿名用户是否允许以 guest 身份是登录;
第二步:建立目录并设置好权限
[root@linuxidc samba]# mkdir /share/test -pv #递归建立目录
mkdir: 已创建目录“/share”
mkdir: 已创建目录“/share/test”
修改 samba 配置文件,在最后面增加以下几行:
[root@linuxidc samba]# vim smb.conf
[tools]
comment = Share Testing
path = /share/test
public = yes
writable = yes
[root@linuxidc samba]# testparm #查看测试配置文档是否有问题
Load smb config files from /etc/samba/smb.conf
Processing section “[homes]”
Processing section “[printers]”
Processing section “[tools]”
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
server string = Samba Server Version %v
passdb backend = tdbsam
log file = /var/log/samba/%m.log
max log size = 50
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No
[tools]
comment = Share Testing
path = /share/test
read only = No
guest ok = Yes
第三步:启动 smbd 和 nmbd 服务器;
[root@linuxidc samba]# service smb start #启动 samba 服务
启动 SMB 服务: [确定]
启动 NMB 服务: [确定]
[root@linuxidc samba]# service nmb start # 启动 nmbd 服务
启动 NMB 服务: [确定]
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-04/142614p2.htm