怎样安装samba服务器来共享文件以及文件夹
认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分,为了对整个过程有一个完整的了解,在此先将这部分卸载掉。使用命令
rpm -qa | grep samba,默认情况下可以查询到两个已经存在的包:
samba-client-xxx-xxx
samba-common-xxxxxx
安装Samba
用以下命令安装:
rpm -ivh samba-xxxrpm -f --nodeps
rpm -ivh samba-client-xxxrpm -f --nodeps
rpm -ivh samba-common-xxxrpm -f --nodeps
安装完成后,使用命令rpm -qa | grep samba进行查询,发现搭建samba服务器所依赖的所有服务器都已经安装好了即可。
天互数据 为您解答,希望能帮到你
正常的解决方法应该是设置好yum
然后 yum install gcc
如果你没有耐心而又想快速解决问题可以,
重装你的系统,在最后阶段选择所有的安装包。
这样基本上没有问题。
关于一楼所说的apt-get install samba 只适应于ubuntu系统,centos应该用对应的yum命令。
在Linux下查看共享文件夹
一般情况,我们用到smbclient,常用方法所如下:
#smbclient -L //IP地址或计算机名
smbclient是samba的Linux客户端,在Linux机器上用来查看服务器上的共享资源,也可以向ftp一样,用户可以登入samba服务器,也可以上传put和下载get文件,遗憾的是中文支持不够好。
方案一:
在文件夹浏览器中输入:smb://IP地址或者smb://主机名
方案二:
1 查看服务器上的资源:
smbclient -L //IP [-U 用户名] //如果samba服务器配置为user模式,就要加“-U 用户名”,如果是share模式,省略即可。
2以用户身份登录:
以用户身份登录后,能像ftp用户一样,上传和下载文件,用put表示上传,get表示下载。
smbclient //IP地址/共享文件夹 -U 用户
说明,IP地址大家都知道,若不知道自己IP地址,可以用/sbin/ifconfig来查看,共享文件夹是在smbconf中定义的[共享文件夹],比如[sea01],-U用户名表示Samba的用户:
#smbclient //19216813/sea01 -U sea01
2 smbclient命令说明:
或help提供帮助
![shell command] 执行所用的shell命令
cd [目录] 切换服务器段指定目录
lcd [目录] 切换到客户端指定目录
dir 或 ls 列出当前目录下的文件
exit 或 quit 退出smbclient
get file1 file2 从服务器上下载文件file1,并以文件名file2保存在本地机上,如果不想改名可以把file2省略
mget file1 file2 file3 filen 从服务器上下载多个文件
md 或 mkdir 在服务器上创建目录
rd 或 rmdir 删除服务器目录
put file1 [file2] 想服务器上传一个文件file1,到服务器上改名为file2
mput file1 file2 filen 向服务器上传多个文件
在Linux下smbfs文件系统挂载
mount就是用于文件系统挂载的,SMB作为网络文件系统的一种,也能用mount挂载
mount挂载smbfs的用法:
mount -t smbfs -o codepage=cp936,username=用户名,password=密码,-l//ip地址/共享文件夹名 挂载点
或
mount -t smbfs -o codepage=cp936,username=用户名,password=密码,-l//计算机名/共享文件夹名 挂载点
或
mount -t smbfs -o codepage=cp936 //ip地址或计算机名/共享文件夹名 挂载点
smbmount的用法如下:
smbmount -o username=用户名,password=密码,-l//ip地址或计算机名/共享文件夹名 挂载点
smbmount //ip地址或计算机名/共享文件夹名 挂载点
说明:
如果服务器以share共享的,则无须用户名和密码就能挂载,使用smbmount来挂载就无须用mount -t smbfs来指定文件系统的类型了,codepage=cp936,这是服务器文件系统的编码的指定,cp936就是简体中文,当然也可以是utf8
同机不同分区共享
samba服务器的配置解决了不同机器的资源共享和访问问题,但是如果在同一台计算机上同时装有windows和Linux,而且又需要在系统之间传送和互访资源,那么就涉及本机Linux分区和windows分区资源的共享问题
1 访问windows分区
在Linux系统下用fdisk -l命令查看windows系统所在的分区,例如
#fdisk –l
在Linux的/mnt目录创建一个子目录windir(用来挂载windows下的文件)
#mkdir /mnt/windir
#mount -t auto /dev/dha1 /mnt/windir
至此就可以实现不同分区之间的互访了,也可以卸载
#umount /mnt/windir
2 访问Linux分区
如果要在windows访问Linux分区中的资源,需要用软件实现,常用的软件有explore2fs和fsdext2,一般使用explore2fs,该软件非常好用,运行explore2fs后,它会在启动的时候自动检测硬盘上的Linux分区,并把Linux分区中的所有文件和文件夹显示在窗口中,这样就可以直接复制了。
Linux系统默认已经安装了Samba,但是没有安装Samba服务:
1,先查看安装情况:rpm -qa|grep samba
根据系统的安装情况选择下载或者通过光驱安装所缺的rpm包。
我的安装情况是:
使用命令:mount /dev/cdrom1 /mnt/cdrom1
通过mount把cdrom1挂载到系统临时目录/mnt/cdrom1,在Packets包下面使用命令:rpm -ivh sambarpm包安装。
切换到放置rpm文件的目录
[root@smb_server root]# rpm -ivh samba-common-369-151el6x86_64
这是Samba 必备的程序,必须安装
[root@smb_server root]# rpm -ivh samba-369-151el6x86_64
安装Samba 服务器程序,可以使我Windows 主机访问Samba 服务器共享的资源。
如果需要使Linux 主机访问Windows 主机上的共享资源,则还应该安装Samba 客户端程序。
[root@smb_server root]# rpm -ivh samba-client-369-151el6x86_64
2,安装samba的rpm包完成后
samba-common-369-151el6x86_64 //主要提供samba服务器的设置文件与设置文件语法检验程序testparm
samba-client-369-151el6x86_64 //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
samba-swat-369-151el6x86_64 //基于https协议的samba服务器web配置界面
samba-369-151el6x86_64 //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项
Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smbconf是samba的核心配置文件,/etc/initd/smb是samba的启动/关闭文件。
5、查看samba的服务启动情况
# service smb status
6、设置开机自启动
# chkconfig --level 35 smb on //在3、5级别上自动运行samba服务
7、配置smb服务
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = ImgPath05
[ImgPath]
comment = Public stuff
path = /usr/local/nginx/html/img
public = yes
writeable = yes
browseable = yes
guest ok = yes
共享目录为:/usr/local/nginx/html/img,共享目录对外名称为:ImgPath 即在Windows看到的目录名称。
设置共享目录权限:chown -R nobody:nobody /usr/local/nginx/html/img/
8、启动或者重启smb服务
重启smb服务
测试smbconf配置是否正确
9 Windows访问共享目录,但是没有写权限,通过以下方式修改防火墙设置。
将Linux smb服务添加到防火墙的例外中 以root用户执行setup命令#setup弹出重启生效,如果不想重启,用命令#setenforce 0
但是,据最近一次,国外科技网站w3techs的数据显示,截止到2010年7月28日,CentOS以高达316%的份额占据了Linux Web服务器的榜首,第二和第三分别是Debian和Red Hat。也就是说,在每十个基于Linux的Web服务器当中,就有三个CentOS,两个半Debian和一个半RHEL。
2009年10月-2010年7月Linux Web服务器市场份额(W3Techs统计)
虽然说,CentOS并不算是一个流行的Linux发行版,在各种热门Linux发行版的排行上都没什么特别好的排名;CentOS也是一个丝毫没有个性的发行版——它根本就是和Red Hat企业级Linux一模一样的。虽然如此,但是在作为Web服务器运行的Linux当中,CentOS却是毫无悬念的No 1。
CentOS为何会如此受用呢?
首先,应该是“Cost(成本)”的原因。既然,CentOS发行版和Red Hat企业级Linux几乎是一模一样的,那么,如果在没有特别需求的情况下,为何不用免费的CentOS呢?况且在美国,RedHat的价格大约是每个服务器每年1000美元,而在国内,大规模的企业,价格更是到了每台服务器每年上万甚至数十万元之间,不是谁都愿意承担这笔费用的。
其次,是由于CentOS在性能和功能等各方面表现都非常优秀。与RedHat非常相似,CentOS在数据中心里面很受欢迎,因为它容易架设、以及后期的维护和管理。CentOS属于社区维护的操作系统,甚至很多新颖的特性,都会首先在这款系统上试用,成熟了之后,才会选择植入其付费的企业版操作系统。
下面编者将安装这款操作系统,并同时用这款操作系统搭建一台常用的文件服务器。
CentOS 55桌面
第2页:图形化安装过程(一)
图形化安装过程(一)
CentOS的安装界面分为图形模式和文本模式两种。这里,很多人会选择文本安装模式,并且选择命令模式来操控系统,这样可以为系统节省很多资源。这里编者特别地来体验一下图形模式安装。单击回车键即可开始安装。
安装初始界面
随后,你可以选择光盘安装或者是硬盘安装,进入图形安装界面。
下面的几个步骤,与其他系统安装过程无异:选择系统语言、键盘布局、创建分区、网络设备、时钟以及用户名和密码等。当然,你可以进行在“网络设备”进行手工设置,配置主机名以及其他设置。这里,编者选择系统安装完成之后,通过VI进行配置。
网络设备
系统配置完成,单击“下一步”开始安装CentOS 55
第3页:图形化安装过程(二)
图形化安装过程(二)
系统安装完成之后,需要重新引导。之后,系统还要进行几项基本设置。
欢迎界面
确认是否启用防火墙,同时选择信任的服务
SELinux设置
同时,系统需要你进行当前时间的校对和用户及密码的设置。自此,系统安装才算完成。
第4页:安装Samba
安装Samba
完成CentOS 55系统安装之后,下面开始今天的主要任务:通过Samba服务器来构建文件服务器。
在我们使用Windows作为客户机的时候,通常有文件、打印共享的需求。作为Windows网络功能之一,通常可以在Windows客户机之间通过Windows Network固有的功能实现这些要求。然而,通过Samba我们也可以让一台CentOS主机来兼Windows网络,实现同样的功能,进而充分发挥CentOS主机的可用性。
注:Samba是一个工具套件,是在Linux和UNIX系统上实现SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。
首先,通过 yum 来在线安装Samba。
注:Yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
在线安装Samba
因为是在线安装,所以完成安装通常需要一段时间,系统会不断地做出提示。
Samba安装成功
第5页:配置Samba(1)
配置Samba
安装完成之后,还通过编辑 /etc/samba/smbconf ,根据需求配置Samba。在这里,本文的意图是只将文件共享应用于内网,并让将要被共享的目录拥有充分的读写权限属性。
找到全局设置标签[global],并在其下加入文字编码的参数设置。
编辑Samba的配置文件smbconf
同时,找到workgroup = MYGROUP此行,将工作组名称改为 Windows 网络所定义的工作组名WORKGROUP。并设置hosts allow = 1921680127,指定内网IP地址及本地,只允许这两种情况的访问,取消行前的“;”符号。
修改工作组名和主机允许IP
然后在配置文件的末尾填如下几行,定义公众共享目录:
定义公众共享目录
第6页:配置Samba(2)
配置Samba
接下来,创建将要通过Samba共享给Windows网络的专用目录。
通过Samba共享给Windows网络的专用目录
在进行到服务端的连接之前,需要预先对用于登录Samba的用户进行设置。
在这里,编者以CentOS中Samba用户数据库管理工具"smbpasswd"为例,创建用于登录Samba的用户数据。当然,前提是系统用户中存在该用户,才可以创建该用户在Samba用户数据库中的信息。所以,必须先用useradd创建该用户。
创建新用户
将该用户信息加入到Samba用户数据库中
第7页:启动Samba服务
启动Samba服务
在启动Samba服务之前,首先将防火墙设置中Samba所用到的端口进行开放。
通过vi /etc/sysconfig/iptables,编辑 iptables 配置文件。
编辑iptables配置文件
并且,键入etc/rcd/initd/iptables restart,重新启动iptables,使新的规则生效。同时,启动Samba服务,包括SMB和NMB服务。
重新启动iptables,使新的规则生效
从Windows客户端连接到Samba服务器
在服务端启动Samba服务后,我们就可以从Windows客户端通 Windows网络连接到Samba。这里以Windows XP为例,说明如下连接过程:
1、从桌面打开"网上邻居",并点击"查看工作组计算机"选项;
2、确认出现Samba服务端的连接,并双击该连接;(本站文档的主机名以Sample为例)
3、输入在服务端预先设置好的Samba用户的用户名及密码;(用户名同系统用户名,密码需要输入在通过smbpasswd为该系统用户设置的Samba专用的密码。)
4、然后确认能够连接到Samba服务器,并出现根目录及Samba专用共享目录。
最后,在相应目录进行新建、修改以及删除文件的操作,测试相应权限的可操作性。
Samba是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFSServer Message Block/Common Internet File System网络协定做连结的自由软件。简而言之此软件在Windows与UNIX系列OS之间搭起一座桥梁让两者的资源可互通有无。
SMB协议是C/S模式客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。配置samba服务可以使同一网络中的linux和windows主机之间互相访问对方共享资源。
samba提供的端口 137,138,139,445
Samba的两个进程
smbd --- 监听tcp的139445端口,处理接口收到的smb数据包
nmbd --- 监听udp的137 138端口,使其他主机能浏览服务器上的资源
Samba五种认证方式
1share所有人都可以访问这台samba服务器不需要输入用户名和密码。
2user需要输入有效的用户名和密码才能访问samba服务器身份验证由samba服务器负责。
3server与user相同只是将身份验证交由指定的另一台samba服务器负责。
4domain将身份验证交由域控制器负责
5ads将身份验证交由域控制器负责比domain更为安全一点
yum –y install samba 安装samba软件包
service smb restart samba的共享服务以后修改只要启动这个服务就行下面这个只要第一次启动
service nmb restart 提供的是upd的协议第一次需要启动
chkconfig smb on
chkconfig nmb on
实验之前将防火墙关掉
/etc/samba samba的主配置目录
/etc/samba/lmhosts 和本地解析文件/etc/hosts原理一样这样共享不安全。
/etc/samba/smbconf 主配置文件
/etc/samba/smbusers samba的别名
workgroup = MYGROUP samba服务器所在的工作组的名称
server string = samba服务器的描述此服务器的samba版本是35目前最新的samba版本是40黑客通过在官网查询40修改了30的哪些漏洞就可以攻击此samba服务器但是如果将这里的描述修改一下可以迷惑黑客提高安全。
smbclient是Samba服务器的命令行方式的登录客户端显示指定Samba服务器中的共享资源列表
smbclient -L //1921681210 -U user1
共享/linux目录共享名为share
user需要输入有效的用户名和密码才能访问samba服务器身份验证由samba服务器负责。
将安全级别改为share所有人都可以访问这台samba服务器不需要输入用户名和密码。
不安全
Windows访问linux共享在运行里面输入//1921681210
只能看到共享的东西但是进不去那是因为samba权限没有写的权限还不够这里主要是理解user和share两个认证方式的区别
Samba用户前提是samba用户必须是本地用户并且转换成为samba用户
smbpasswd命令用于维护Samba服务器的用户帐号
n 添加Samba用户帐号
# smbpasswd –a user1
n 删除Samba用户帐号
# smbpasswd -x user1
n 禁用Samba用户帐号
# smbpasswd –d user1
n 启用Samba用户帐号
# smbpasswd -e user1
允许user1对/linux目录有写权限其他用户均为只读
comment = all linux 注释掉了是对该目录的描述
path = /linux 共享路径
writeable = no 是否允许写操作no代表只读如果是yes代表所有人都可以写
write list = user1 只允许user1对该目录有写入的权限 前提该目录a+W
客户端连接
mount -t cifs //1921681210/share /opt -o username=user1 填的是/linux下面的/share
仅允许用户在19216810/24域可以访问允许所有人浏览不允许匿名访问但是加了valid users 就成了只有user1可以访问
browseable = yes 允许所有人浏览
valid users = user1 只能谁才能读(设置允许访问共享资源的用户和组 组要加@)
public = yes 允许匿名访问no不允许匿名访问
hosts deny = 1921681210
hosts allow = 1921681210 两个同时存在允许优先
账号映射(别名)目的是避免利用samba 帐号来猜测系统帐号
方法:
1在全局启用映射表
username map=/etc/samba/smbusers
2添加映射帐户
vim /etc/samba/smbusers
3重启服务
0条评论