linuxsamba安装
⑴ linuxsamba安装挂起问题
在嵌入式系统开发应用平台中,tftp、nfs和samba服务器是最常用的文件传输工具,本文详细的介绍一下Linux Samba服务器安装配置,感兴趣的可以了解一下
在嵌入式系统开发应用平台中,tftp、nfs和samba服务器是最常用的文件传输工具,tftp和nfs是在嵌入式Linux开发环境中经常使用的传输工具,samba则是Linux和Windows之间的文件传输工具。
samba是模仿Windows网上邻居的SMB的通讯协议,将Linux操作系统“假装成”Windows操作系统,通过网上邻居的方式来进行文件传输的。
虚拟机版本:VMware10
Linux操作系统版本:Red Hat Enterprise Linux 5
Samba服务器介绍
Samba是在Linux系统上实现SMB(Session MessageBlock)协议的一个免费软件,以实现文件共享和打印机服务共享。
Samba服务器组件
samba有两个主要的进程smbd和nmbd。smbd进程提供了文件和打印服务,而nmbd则提供了NetBIOS名称服务和浏览支持,帮助SMB客户定位服务器,处理所有基于UDP的协议。
Samba服务器相关的配置文件
/etc/samba/smb.conf
这是samba的主要配置文件,基本上仅有这个文件,而且这个配置文件本身的说明非常详细。主要的设置包括服务器全局设置,如工作组、NetBIOS名称和密码等级,以及共享目录的相关设置,如实际目录、共享资源名称和权限等两大部分。
/etc/samba/lmhosts
早期的 NetBIOS name 需额外设定,因此需要这个 lmhosts 的 NetBIOS name 对应的 IP 档。 事实上它有点像是 /etc/hosts 的功能!只不过这个 lmhosts 对应的主机名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 预设会去使用你的本机名称 (hostname) 作为你的 NetBIOS name,因此这个档案不设定也无所谓。
/etc/sysconfig/samba
提供启动 smbd, nmbd 时,你还想要加入的相关服务参数。
/etc/samba/smbusers
由于 Windows 与 Linux 在管理员与访客的账号名称不一致,例如: administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系,可使用这个档案来设定
/var/lib/samba/private/{passdb.tdb,secrets.tdb}
管理 Samba 的用户账号/密码时,会用到的数据库档案;
/usr/share/doc/samba-<版本>
这个目录包含了 SAMBA 的所有相关的技术手册喔!也就是说,当你安装好了 SAMBA 之后,你的系统里面就已经含有相当丰富而完整的 SAMBA 使用手册了!值得高兴吧! ^_^,所以,赶紧自行参考喔!
至于常用的脚本文件案方面,若分为服务器与客户端功能,则主要有底下这几个数据:
/usr/sbin/{smbd,nmbd}:服务器功能,就是最重要的权限管理 (smbd) 以及 NetBIOS name 查询 (nmbd) 两个重要的服务程序;
/usr/bin/{tdbmp,tdbtool}:服务器功能,在 Samba 3.0 以后的版本中,用户的账号与密码参数已经转为使用数据库了!Samba 使用的数据库名称为 TDB (Trivial DataBase)。 既然是使用数据库,当然要使用数据库的控制指令来处理啰。tdbmp 可以察看数据库的内容,tdbtool 则可以进入数据库操作接口直接手动修改帐密参数。不过,你得要安装 tdb-tools 这个软件才行;
/usr/bin/smbstatus:服务器功能,可以列出目前 Samba 的联机状况, 包括每一条 Samba 联机的 PID, 分享的资源,使用的用户来源等等,让你轻松管理 Samba 啦;
/usr/bin/{smbpasswd,pdbedit}:服务器功能,在管理 Samba 的用户账号密码时, 早期是使用 smbpasswd 这个指令,不过因为后来使用 TDB 数据库了,因此建议使用新的 pdbedit 指令来管理用户数据;
/usr/bin/testparm:服务器功能,这个指令主要在检验配置文件 smb.conf 的语法正确与否,当你编辑过 smb.conf 时,请务必使用这个指令来检查一次,避免因为打字错误引起的困扰啊!
/sbin/mount.cifs:客户端功能,在 Windows 上面我们可以设定‘网络驱动器机’来连接到自己的主机上面。在 Linux 上面,我们则是透过 mount (mount.cifs) 来将远程主机分享的档案与目录挂载到自己的 Linux 主机上面哪!
/usr/bin/smbclient:客户端功能,当你的 Linux主机想要借由‘网络上的芳邻’的功能来查看别台计算机所分享出来的目录与装置时,就可以使用 smbclient来查看啦!这个指令也可以使用在自己的 SAMBA 主机上面,用来查看是否设定成功哩!
/usr/bin/nmblookup:客户端功能,有点类似 nslookup 啦!重点在查出 NetBIOS name 就是了
/usr/bin/smbtree:客户端功能,这玩意就有点像 Windows 系统的网络上的芳邻显示的结果,可以显示类似‘靠近我的计算机’之类的数据, 能够查到工作组与计算机名称的树状目录分布图!
安装Samba
首先确认一下自己的Linux是否安装了Samba,使用命令:
[root@localhost ~]# rpm -qa | grep samba
其中:samba、samba-common、samba-client三个程序是必须的。
如果没有安装,有两种方式可以安装:
第一种方式:yum安装
yum是一个集与查找,安装,更新和删除程序的Linux软件。它运行在RPM包兼容的Linux发行版本上,如:RedHat、Fedora、SUSE、CentOS、Mandriva。
yum install -y samba
第二种方式:安装包安装
安装包都在光盘里,首先需要挂载:
[root@localhost ~]# mount /dev/cdrom /mnt
这个时候,会出现一个问题:
mount: block device /dev/sr0 is write-protected, mounting read-only
提示信息说,虚拟机挂着光驱光驱时提示只读。用以下命令可解决该报错:
mount -o remount,rw /dev/cdrom /mnt
此时,我们会发现,原本空的文件夹/mnt现在多了很多的文件。
在/mnt/Server文件夹中,会能找到关于Samba的安装包:
找到安装包之后,就是安装Samba了(只需要安装自己没有的那个就行了)。使用命令:
rpm samba-3.0.25b-0.el5.4.i386.rpm
rpm samba-client-3.0.25b-0.el5.4.i386.rpm
rpm samba-commons-3.0.25b-0.el5.4.i386.rpm
安装完之后,再使用命令验证一下是否安装完成:
[root@localhost ~]# rpm -qa | grep samba
配置Samba
修改配置文件
samba服务器最主要的配置文件其实只有一个,就是/etc/samba/samba.conf,这个配置文件可以分为两个部分,一个部分是全局参数,一部分是共享资源相关参数。
#1.全局部分参数设置:
[global]
#与主机名相关的设置
workgroup = zkhouse <==工作组名称
netbios name = zkserver <==主机名称,跟hostname不是一个概念,在同一个组中,netbios name必须唯一
serverstring = this is a test samba server <==说明性文字,内容无关紧要
#与登录文件有关的设置
log file = /var/log/samba/log.%m <==日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostname
max log size = 50 <==日志文件最大的大小为50Kb
#与密码相关的设置
security = share <==表示不需要密码,可设置的值为share、user和server
passdb backend = tdbsam
#打印机加载方式
load printer = no <==不加载打印机
-----------------------------------------------------------
#2.共享资源设置方面:将旧的注释掉,加入新的
#先取消[homes]、[printers]的项目,添加[temp]项目如下
[temp] <==共享资源名称
comment = Temporary file space <==简单的解释,内容无关紧要
path = /tmp <==实际的共享目录
writable = yes <==设置为可写入
browseable = yes <==可以被所有用户浏览到资源名称,
guest ok = yes <==可以让用户随意登录
也就是说,将上面“#2共享资源设置方面”加入到配置文件的最后即可。
添加用户并设置密码
设置账号用于登录samba服务器,同时并设置密码。具体命令:
[root@localhost ~]# useradd sambauser
[root@localhost ~]# smbpasswd -a sambauser
New SMB password:
Retype new SMB password:
重启Samba服务器
[root@localhost ~]# /etc/init.d/smb restart
如果这段命令无法运行,就是Samba没有正确安装的原因。
登录Samba
在Windows和Linux网络都畅通的情况下,在Windows下登录Samba服务器。使用命令查看Samba的IP地址:
[root@localhost ~]# ifconfig
在Windows的运行,输入\\223.3.119.170(Samba对应的IP地址):
这个时候会弹出登录界面,直接输入之前设置的登录账号和密码就行了。
问题汇总及补充
之前Samba的安装和配置都是一步一步来的,没有什么问题。但是很多情况下,就是最后在Windows的运行中,输入了\\IP地址之后,没有任何反应。这是最麻烦的地方,因为完全不知道是什么原因导致的。下面提供几个可能出问题的地方:
网络选择
在配置Samba服务器的时候,网络选择为bridge桥连接。
这是因为:要保证Linux下的IP和Windows下的IP处于同一网段中,并且保证相互可以ping通。
怎么验证?
在Windows的命令行中,输入命令ipconfig:
同时在Linux中输入命令ifconfig(两个命令不一样,需要注意):
可以看到:两个IP地址223.3.119.239和223.3.119.170之间前3个都是一样的,只有最后一个不同,这就保证了在同一网段。如果前3位不同,可在Linux中使用命令:
[root@localhost ~]# ifconfig eth0 223.3.119.130
只需要保证只有最后一个不同即可。
接下来验证Windows和Linux之间的ping通,在Windows命令行中输入ping Linux的IP地址:
结果如果不是timeout,就代表两者之间ping通。
防火墙问题
如果防火墙不关闭,Windows和Samba之间的连通可能会被阻挡。
Windows上关闭防火墙:控制面板->系统和安全->Windows防火墙->打开或关闭Windows防火墙;
Linux上关闭防火墙:
[root@localhost ~]# setenforce 0
[root@localhost ~]# service iptables stop
记得要重启Samba服务器。
权限问题
可能会出现权限不够的问题,修改你想要的那个文件的权限。
[root@localhost ~]# chmod 777 /home
无法访问
如果用windows访问samba,跳出以下对话框的错误:
无法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。
不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次……或者直接重启Windows。
怎么断开连接(即退出Samba服务器)呢?
在Windows的命令行中输入:
net use * /delete /y
自动连接
使每次打开Linux自动运行smba服务器:
在终端中输入setup->system service->找到smb,按下空格,便可选中->退出完成(注意切换用tab键)。
⑵ linux下如何安装smb服务器
下载rpm格式的Samba安装程序安装:yum install samba编辑配置文件:vim /etc/samba/smb.conf找到Standalone Server Options,将下面的security = share,使用户登陆时不需要输入帐号及密码。设置公共访问目录,在smb.conf中找到:; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff将前面的分号去掉。path = /home/samba
指定公众共享目录路径,该目录就可以供不同用户使用。public = yes
取值为yes时,允许公众共享。否则,禁止公众共享目录。writable = yes
取值为yes时,公众对/home/samba有可写权限。printable = no
取值为yes时,公众对/home/samba有打印权限。write list = +staff
指定具有可写权限的用户名单或用户组所有成员,这里允许staff用户组的所有成员具有可写权限。设置smb开机自启动:
chkconfig –level 345 smb on启动smb服务:service smb start
此时打开\Linux主机IP,会看到有一个public的共享文件夹。
⑶ linux怎么安装samba服务器
你使用的是什么发行版?是centos么?如果是的话就跟随以下我的方法来设置吧。
samba这款软件应用确实非常广泛,同时也为linux和windows之间文件传输提供了一个非常轻松的方式,同时它的安装方法也是非常简单的,我的方法适用于centos6.8及其以前的系统。
1.首先,看看系统里面有没有装samba,这是最关键的一步,不然接下来可能会出问题。默认情况下,centos系统在默认安装中应该已经安装了Samba服务包的一部分 。
rpm-qa|grepsamba//默认情况下可以查询到两个已经存在的包:
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
2.上网找找samba主rpm包。
不过我这里先前就已经找过一个包,在服务器上执行wget下载就好了。
[root@chunming-pc`]#wgetftp://195.220.108.108/linux/fedora-secondary/releases/23/Everything/s390/os/Packages/s/samba-4.3.0-0.1.rc4.fc23.s390.rpm
然后下载完成之后使用以下命令安装即可(例如我这里下载的是samba-4.3.0-0.1.rc4.fc23.s390.rpm)
[root@chunming-pc`]#rpm-ivhsamba-4.3.0-0.1.rc4.fc23.s390.rpm
然后安装完成之后就是需要修改配置文件了。
找到/etc/samba/smb.conf,打开它,然后把这段写入smb.conf中
[global]
workgroup=LinuxSir
netbiosname=LinuxSir05
serverstring=LinuxSambaServerTestServer
security=share[linuxsir]
path=/opt/linuxsir
writeable=yes
browseable=yes
guestok=yes
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是Windows中显示的工作组;在这里我设置的是LINUXSIR (用大写);
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
[linuxsir] 这个在Windows中显示出来是共享的目录;
那么path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,在工作组下能看到共享文件夹。如果不想显示出来,那就设置为 browseable=no,guest ok 匿名用户以guest身份是登录;
之后就是需要建立相应目录并授权:
[root@chunming-pc~]#mkdir-p/opt/linuxsir
创建之后,会发现所属用户和组是root,只需要chown 将对应的目录所属改成samba这个软件的用户就可以了。
然后到现在配置就完成了,把服务起来iptables开放端口就可以给外网访问了。
⑷ linux访问windows的samba配置,如何配置详细教程
1,首先我们要知道samba的作用是做什么的?
其实在我看来samba有三点好处
a:是一个文件共享服务器,是linux与windows的沟通管道
b:可以作为打印print server提供windows远程联机打印,(有人会说windows也可以啊,但个人认为还是linux稳定些)
c:samba也可以作为wins server服务器,配合dhcp服务器可以管理NT网域。
2,samba每次启动至少有两个服务进程smbd,nmbd,它们分别的作用是?
smbd 用来管理samba主机分享什么什么目录,打印服务等
nmbd 用来管理群组,netbios name的解析
3,当samba启动的时候会用到那些端口呢?
samba启动的时候会用到137,138,139,三个端口所以我们在配置防火墙的时候会用到这三个端口的
4,samba的安装?
首先我们需要检测自己到底安装了samba服务没有,因为我们装系统的时候默认是装了samba服务的(我这里装的是fedora4)
[root@www ~]# rpm -qa |grep samba
samba-3.0.14a-2
system-config-samba-1.2.31-1
samba-common-3.0.14a-2
samba-client-3.0.14a-2
本机已经安装了 ,其实我真的挺建议大家装的时候用rpm包装,而不用tar.gz,我给大家推荐个网站可以下载所有的rpm包,只需要安装4个rpm包就可以了,以后缺少什么rpm包就直接来这里下载了,这里提醒下samba的最新版本为3.0.28版本,下载地址为
5,确认samba服务是否启动
[root@www ~]# ps aux |grep samba
root 32713 0.0 0.0 280 16 pts/0 R+ 15:46 0:00 grep samba
6.启动samba服务
[root@www samba]# service smb start
启动 SMB 服务: [ 确定 ]
启动 NMB 服务: [ 确定 ]
想要开机就启动samba服务,有两种方法a. [root@www samba]# ntsysv b.[root@www samba]# chkconfig --level 345 smb on
7,samba是装在默认是装在etc目录下的,而samba文件夹下有那些文件以及文件的含义?
[root@www ~]# cd /etc/samba/
[root@www samba]# ls
lmhosts 局域网内相关的netbios name对应的ip信息
secrets.tdb 这是加密库
smb.conf samba的主配置文件
smbpasswd samba服务器的使用者密码对应表
smbusers user模式下的Samba 服务,在登录的时候所使用的用户名必需是在/etc/samba/smbusers中定意过。只有提供smbusers中定义过的用户SAMBA才能允许登录。
8.smb.conf配置
a,首先挑几个比较重要的解释下
workgroup = MYGROUP 工作组群:同一个局域网内,要有相同的workgroup
server string = Samba Server 主机的说明,可以随便起名字
log file = /var/log/samba/%m.log 日志登录文件存放的位置
max log size = 50 最大日志大小这里的50指的是50kB
security = user 需要用户名和密码才能登录,与smbpasswd有关
= share 不需要用户名和密码进行登录
= domin 就是让你的samba作为主域控制器
[myshare] 共享目录
comment = 对这个共享目录的说明
path = /var/www/html 共享的路径
public = no 是否让所有登录者都看到这个目录
read only = no 不光可读还可执行存取
writable = yes 是否可以写入
printable = no 是否可以打印
valid users = zy 允许的登陆者
create mask = 0765 权限是目录所有者是可读可写可执行 同一个组的用户可读可写 其他用户只有读和执行的权利
9,以security = share 写一个实例
[root@www samba]# vi smb.conf
workgroup = MYGROUP
server string = 赵勇 Server
client code page = 950 想让你的samba可以在windows上显示中文就需要加入这句,没设定默认的值是850
security = share 安全级别是share
log file = /var/log/samba/%m.log 日志登录文件存放的位置
max log size = 0 表示登录档案大小不限制
下面的是自己添加的
[zy]
comment = zy samba server
path = /tmp
read only = no
public = yes
然后测试samba服务器
[root@www samba]# testparm
然后再按enter键 就会出现你的所有配置
从新启动samba
[root@www samba]# service smb restart
客户端的测试
打开网上邻居 然后查看所有网络 然后找到mygroup 找到你的samba主机
10.接下来我们要设定需要密码认证才能登陆的samba服务器
workgroup = MYGROUP
server string = zy Server
hosts allow = 192.168.1.102 127. 需要说明我windows主机地址为192.168.1.102 这里是为了安全期间 只允许192.168.1.102这个地址才能访问我的samba服务器
client code page = 950 想让你的samba可以在windows上显示中文就需要加入这句,没设定默认的值是850
security = user 安全级别是user
encrypt passwords = yes 使用加密密码对samba访问
smb passwd file = /etc/samba/smbpasswd 密码保存文件路径
log file = /var/log/samba/%m.log 日志登录文件存放的位置
max log size = 0 表示登录档案大小不限制
底下设定每个使用者的家目录,这里我有两个用户zy,yy
[homes]
comment = zy yy homes
browseable = no browseable是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
valid users = %s %s指的是任何可以登录者都可以登录的意思,比如是zy登录则[homes]变为[zy],而yy登录[homes]变为[yy]
writable = yes 可写
create mask = 0755 创建档案的权利是755
directory mask = 0755 创建目录的权力是755
[public]
comment = zy yy
path = /home/public 指定路径
public = yes 允许公开共享
writable = yes 可以写入
11,创建public目录,创建用户,并测试从新启动samba服务器
[root@www home]# mkdir public
[root@www ~]# chmod 777 public 给这个目录的权限
[root@www ~]# useradd yy 创建系统用户yy
[root@www ~]# smbpasswd -a yy 把yy用户加入smbpasswd中
New SMB password:
Retype new SMB password:
Added user yy.
[root@www ~]# useradd zy
[root@www samba]# smbpasswd -a zy
New SMB password:
Retype new SMB password:
Added user zy.
[root@www samba]# service smb restart
我可以帮助你,你先设置我最佳答案后,我网络Hii教你。
⑸ 怎样在Linux系统搭建Samba共享服务器
安装服务程序
通过安装Samba服务程序后细致的分析其配置文件参数,更能够帮助读者们理解Samba服务的安全验证方式。
安装Samba服务软件包:
[root@linuxprobe Desktop]# yum install samba
Loaded plugins: langpacks, proct-id, subscription-manager
………………省略部分安装过程………………
Installing:
samba x86_64 4.1.1-31.el7 rhel7 527 k
………………省略部分安装过程………………
Complete!
浏览Samba配置文件:
[root@linuxprobe ~]# cat/etc/samba/smb.conf
配置文件竟然有320行!有没有被吓到?其实Samba服务配置文件中大部分是注释信息,我们可以来筛选过滤下:
备份原始的配置文件:
[root@linuxprobe ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
过滤掉无用的内容:
先使用cat命令读入Smb配置文件后通过grep命令-v参数(反向选择)去掉所有注释信息,然后分别删选掉包含#号的行("#"),包含;号的行(";")以及所有的空白行("^$"),最后最后将过滤后的信息覆盖写入到/etc/samba/smb.conf文件中。
cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
让我们来看看过滤后的配置文件吧:
[global] #全局参数。
workgroup = MYGROUP #工作组名称。
server string = Samba Server Version %v #服务器介绍信息,参数%v为显示SMB版本号。
log file = /var/log/samba/log.%m #定义日志文件存放位置与名称,参数%m为来访的主机名。
max log size = 50 #定义日志文件最大容量为50Kb。
security = user #安全验证的方式,总共有4种。
#share:来访主机无需验证口令,更加方便,但安全性很差。
#user:需由SMB服务验证来访主机提供的口令后才可建立访问,更加的安全。
#server:使用独立的远程主机验证来访主机提供的口令(集中管理帐号)。
#domain:使用PDC来完成验证
passdb backend = tdbsam #定义用户后台的类型,共有3种。
#smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码。
#tdbsam:创建数据库文件并使用pdbedit建立SMB独立的用户。
#ldapsam:基于LDAP服务进行帐户验证。
load printers = yes #设置是否当Samba服务启动时共享打印机设备。
cups options = raw #打印机的选项
[homes] #共享参数
comment = Home Directories #描述信息
browseable = no #指定共享是否在“网上邻居”中可见。
writable = yes #定义是否可写入操作,与"read only"相反。
[printers] #打印机共享参数
comment = All Printers
path = /var/spool/samba #共享文件的实际路径(重要)。
browseable = no
guest ok = no #是否所有人可见,等同于"public"参数。
writable = no
printable = yes
标准的Samba共享参数是这样的:
参数 作用
[linuxprobe] 共享名称为linuxprobe
comment = Do not arbitrarily modify the database file 警告用户不要随意修改数据库
path = /home/database 共享文件夹在/home/database
public = no 关闭所有人可见
writable = yes 允许写入操作
我们将上面的配置参数直接追加到SMB服务配置文件(/etc/samba/smb.conf)并重启SMB服务程序即可生效。
但此时SMB服务默认的验证模式为user,我们需要先创建用户数据库后才可以正常使用,现在来学习下如何创建吧~
12.2.2 安全共享文件
使用Samba服务口令验证方式可以让共享文件更加的安全,做到仅让信任的用户访问,而且验证过程也很简单,要想使用口令验证模式,我们需要先创建Samba服务独立的数据库。
第1步:检查当前是否为user验证模式。
[root@linuxprobe ~]# cat /etc/samba/smb.conf
第2步:创建共享文件夹:
[root@linuxprobe ~]# mkdir /database
第3步:描述共享文件夹信息。
在SMB服务主配置文件的最下面追加共享文件夹的配置参数:
[database]
comment = Do not arbitrarily modify the database file
path = /database
public = no
writable = yes
保存smb.conf文件后重启启动SMB服务:
[root@linuxprobe ~]# systemctl restart smb
添加到开机启动项:
[root@linuxprobe ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
第4步:使用Windows主机尝试访问
读者按照下表的IP地址规划动手配置下Windows的网卡参数,应该都会吧~
主机名称 操作系统 IP地址
Samba共享服务器 红帽RHEL7操作系统 192.168.10.10
客户端 红帽RHEL7操作系统 192.168.10.20
客户端 微软Windows7操作系统 192.168.10.30
在Windows主机的运行框中输入远程主机的信息
此时访问Samba服务报错
此时访问Samba服务是报错的,如果读者已经看完Apache(httpd)服务程序的章节,应该还记得防火墙和SELinux规则吧。
第5步:清空防火墙规则链:
Windows访问Samba主机提示报错,我们怀疑是Iptables阻止了访问操作,于是执行:
[root@linuxprobe ~]# Iptables -F
[root@linuxprobe ~]# service iptables save
因为Windows系统的缓存关系,可能需要先重启下Windows主机再尝试访问Samba共享。
Windows系统被要求验证帐户口令
那么这个问题就是出在Iptables防火墙的默认规则中了,所以请对SELinux多一点耐心,不要直接关闭SELinux。
第6步:创建SMB服务独立的帐号。
现在Windows系统要求先验证后才能访问共享,而SMB服务配置文件中密码数据库后台类型为"tdbsam",所以这个帐户和口令是Samba服务的独立帐号信息,我们需要使用pdbedit命令来创建SMB服务的用户数据库。
pdbedit命令用于管理SMB服务的帐户信息数据库,格式为:“pdbedit [选项] 帐户”。
参数 作用
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表
创建系统用户:
[root@linuxprobe ~]# useradd smbuser
将此系统用户提升为SMB用户:
[root@linuxprobe ~]# pdbedit -a -u smbuser
new password:设置SMB服务独立的密码
retype new password:
Unix username: smbuser
NT username:
Account Flags: [U ]
User SID: S-1-5-21-4146456071-3435711857-2069708454-1000
Primary Group SID: S-1-5-21-4146456071-3435711857-2069708454-513
Full Name:
Home Directory: \\linuxprobe\smbuser
HomeDir Drive:
Logon Script:
Profile Path: \\linuxprobe\smbuser\profile
Domain: LINUXPROBE
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Sat, 11 Jul 2015 18:27:04 CST
Password can change: Sat, 11 Jul 2015 18:27:04 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours :
第7步:使用Windows主机验证共享结果:
请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。
Windows验证SMB服务口令
Windows成功访问SMB服务
Windows进入共享目录失败
1
2
3
<
>
第8步:允许SELinux规则
使用Windows主机访问Samba共享果然可以使用smbuser用户登入,但对于共享文件这么重要的事情,SELinux一定会强制管理,刚刚没有妥当的配置好SELinux,现在果然又报错了。
将共享目录的所有者和所有组设置为smbuser用户:
[root@linuxprobe ~]# chown -Rf smbuser:smbuser /database
允许SELinux对于SMB用户共享家目录的布尔值:
[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on
将共享目录的SELinux安全上下文设置妥当:
[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /database
使新的安全上下文立即生效:
[root@linuxprobe ~]# restorecon -Rv /database/
第9步:使用Windows主机验证共享结果
我们配置好Samba服务后又陆续的调整好了Iptables防火墙与SELinux安全规则,现在终于可以正常的使用共享了。
使用SMB服务并创建文件
第10步:使用Linux主机验证共享结果
刚刚好像让读者产生了一些小误解,Samba服务程序并不仅仅是能够实现Linux与Windows系统间的文件共享,还可以实现Linux系统之间的文件共享哦,先动手配置下客户端主机的IP地址吧:
主机名称 操作系统 IP地址
Samba共享服务器 红帽RHEL7操作系统 192.168.10.10
客户端 红帽RHEL7操作系统 192.168.10.20
客户端 微软Windows7操作系统 192.168.10.30
在客户端安装cifs-utils软件包:
[root@linuxprobe ~]# yum install -y cifs-utils
Loaded plugins: langpacks, proct-id, subscription-manager
………………省略部分安装过程………………
Installing:
cifs-utils x86_64 6.2-6.el7 rhel7 83 k
………………省略部分安装过程………………
Complete!
创建挂载目录:
[root@linuxprobe ~]# mkdir /database
在root家目录创建认证文件(依次为SMB用户名、SMB用户密码、SMB共享域):
[root@linuxprobe ~]# vim auth.smb
username=smbuser
password=redhat
domain=MYGROUP
此文件太重要了,权限应该给小一些:
[root@linuxprobe ~]# chmod -Rf 600 auth.smb
配置其挂载信息(内容依次为远程共享信息、本地挂载目录、文件系统类型、认证文件以及开机自检选项):
[root@linuxprobe ~]# vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0
使用mount命令的-a参数挂载所有在fstab文件中定义的文件信息:
[root@linuxprobe ~]# mount -a
成功挂载Samba的共享目录(能够看到共享文件了):
[root@linuxprobe ~]# cat /database/Memo.txt
i can edit it .
Samba服务真的是太强大了,不仅能够实现Linux系统之间分享数据还能与Windows主机进行文件共享。
使用Samba实现文件共享 http://www.linuxprobe.com/chapter-12.html 参考这里了……!@%¥#
⑹ linux 操作 Samba服务器设置
在Linux平台,以二进制程序包和源代码两种方式安装samba服务器,并整理相关配置文件,并给出基本应用操作。
步骤:
1.机器上已经存在的samba服务,版本为3.0.21b,这是通过使用rpm命令得到的。如下:
# rpm –qa | grep samba
Samba-client-3.0.21b-2
Samba-common-3.0.21b-2
2.将上面的samba-client-3.0.21b-2卸载。使用命令:rpm –e samba-client-3.0.21b-2。
3.用rpm –e samba-common-3.0.21b-2来卸载common,因为依赖关系,不成功。
4.下载二进制程序包:
samba-common-3.0.23c-4.i386.rpm,
samba-client-3.0.23c-4.i386.rpm,
samba-doc-3.0.23c-4.i386.rpm,
samba -3.0.23c-4.i386.rpm。
5.安装这些程序包。分别使用命令:
rpm –Uvh samba-common-3.0.23c-4.i386.rpm
rpm –ivh samba-client-3.0.23c-4.i386.rpm
rpm –ivh samba-3.0.23c-4.i386.rpm
rpm –ivh samba-doc-3.0.23c-4.i386.rpm
使用选项Uvh来安装common是因为原来的common没有被卸载,因此应进行升级安装(U)。
6.安装完毕后,可以使用rpm –qa samba来确认。会输出samba-3.0.24c-4。
7.下面开始对samba服务进行配置。
8.首先,修改/etc/samba/lmhosts文件。加入一行,为本机上的Windows系统IP地址和主机名。这样才可以通过Windows来访问Unix的samba服务。
9.创建目录/export/sambadir作为共享目录。
命令:mkdir –p /export/sambadir
chmod 777 /export/sambadir
10.修改/etc/samba/smb.conf文件。这是samba的配置文件。
Security = user
Log file = /var/log/samba/log.%m
Path = /export/sambadir
11.使用testparam来测试修改结果。
12.加入一个用户,并修改其密码。
13.使用chkconfig命令来设置在启动级别5中启动samba。命令如下:
Chkconfig –list | grep smb
Chkconfig –level 5 smb on
Chkconfig –list | grep smb
14.重新启动网络服务:
/etc/rc.d/init.d/cups stop
/etc/rc.d/init.d/smb restart
15.然后就可以在Windows系统中通过12步中设定的用户名和密码来访问Linux。
16.使用源代码的安装方式:下载samba-3.0.23c.tar.gz源代码包,解压。
Cd samba-3.0.23c/source
./autogen.sh
./configure –prefix=/usr –localstatedir=/var –with-configdir=/etc/samba –with-privatedir=/etc/samba –with-fhs –with-quotas –with-smbmount –enable-cups –with-pam_smbpass –with-syslog –with-utmp –with-swatdir=/usr/share/swat –with-shared-moles=idmap_rid –with-libsmbclient
Make
Make install
17.其余步骤与7之后相同。
这是我实验时写的,平台是redhat 9
⑺ 怎样在Linux系统搭建Samba共享服务器
Linux系统默认已经安装了Samba,但是没有安装Samba服务:
1,先查看安装情况:rpm -qa|grep samba
根据系统的安装情况选择下载或者通过光驱安装所缺的rpm包。
我的安装情况是:
使用命令:mount /dev/cdrom1 /mnt/cdrom1
通过mount把cdrom1挂载到系统临时目录/mnt/cdrom1,在Packets包下面使用命令:rpm -ivh
samba.*.rpm包安装。
切换到放置rpm文件的目录
[root@smb_server root]# rpm
-ivh samba-common-3.6.9-151.el6.x86_64
这是Samba 必备的程序,必须安装
[root@smb_server root]# rpm
-ivh samba-3.6.9-151.el6.x86_64
安装Samba 服务器程序,可以使我Windows 主机访问Samba 服务器共享的资源。
如果需要使Linux 主机访问Windows 主机上的共享资源,则还应该安装Samba 客户端程序。
[root@smb_server root]# rpm
-ivh samba-client-3.6.9-151.el6.x86_64
2,安装samba的rpm包完成后
samba-common-3.6.9-151.el6.x86_64
//主要提供samba服务器的设置文件与设置文件语法检验程序testparm
samba-client-3.6.9-151.el6.x86_64
//客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
samba-swat-3.6.9-151.el6.x86_64
//基于https协议的samba服务器web配置界面
samba-3.6.9-151.el6.x86_64