挂载samba共享文件夹

一、安装Samba服务:

首先使用 rpm -qa | grep samba 命令查看系统有没有安装Samba服务

如果没有,使用 yum install samba 命令进行安装

使用 rpm -qa | grep samba 命令查看安装的Samba信息

service smb start        # 启动Samba服务

service smb stop        # 停止Samba服务

service smb restart     # 重新启动Samba服务

service smb status     # 查看Samba服务的状态

chkconfig smb on       # 加入开机启动项

二、编辑Samba服务的配置文件:

由于在Samba服务程序的主配置文件中,注释信息行实在太多,不便于分析里面的重要参数,因此先把主配置文件用mv命令改个名字,然后使用cat命令读入主配置文件,再在grep命令后面添加-v参数(反向选择),分别去掉所有以井号(#)和分号(;)开头的注释信息行,对于剩余的空白行可以使用^$参数来表示并进行反选过滤,最后把过滤后的可用参数信息通过重定向符覆盖写入到原始文件名称中。执行过滤后剩下的Samba服务程序的参数并不复杂,为了更方便读者查阅参数的功能,下面的表中罗列了这些参数以及相应的注释说明。

mv /etc/samba/smb.conf /etc/samba/smb.conf-backup

cat /etc/samba/smb.conf-backup | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf

vim /etc/samba/smb.conf

Samba服务程序中的参数以及作用

[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:需验证来访主机提供的口令后才可以访问;提升了安全性
#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
#domain:使用域控制器进行身份验证
passdb backend = tdbsam#定义用户后台的类型,共有3种
#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
#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

三、配置共享资源 

第1步:创建用于访问共享资源的账户信息。在CentOS 6和7系统中,Samba服务程序默认都使用的是用户口令认证模式(user)。这种认证模式可以确保仅让有密码且受信任的用户访问共享资源,而且验证过程也十分简单。不过,只有建立账户信息数据库之后,才能使用用户口令认证模式。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。

pdbedit命令用于管理SMB服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。pdbedit命令中使用的参数以及作用如下表所示。

用于pdbedit命令的参数以及作用

参数作用
-a 用户名建立Samba用户
-x 用户名删除Samba用户
-L列出用户列表
-Lv列出用户详细信息的列表

useradd samba   # 创建账户

pdbedit -a -u samba   # 把用来连接SMB服务的账户信息写入到数据库

第2步:创建用于共享资源的文件目录。在创建时,不仅要考虑到文件读写权限的问题,而且由于/home目录是系统中普通用户的家目录,因此还需要考虑应用于该目录的SELinux安全上下文所带来的限制。在前面对Samba服务程序配置文件中的注释信息进行过滤时,这些过滤的信息中就有关于SELinux安全上下文策略的说明,我们只需按照过滤信息中有关SELinux安全上下文策略中的说明中给的值进行修改即可。修改完毕后执行restorecon命令,让应用于目录的新SELinux安全上下文立即生效。

mkdir /home/database/

chown -Rf samba:samba /home/database/

restorecon -Rv /home/database

第3步:设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。执行getsebool命令,筛选出所有与Samba服务程序相关的SELinux域策略,根据策略的名称(和经验)选择出正确的策略条目进行开启即可:

getsebool -a | grep samba

setsebool -P samba_enable_home_dirs on

getsebool -a | grep samba

第4步:在Samba服务程序的主配置文件中,根据下表所提到的格式写入共享信息。在原始的配置文件中,[homes]参数为来访用户的家目录共享信息,[printers]参数为共享的打印机设备。这两项如果在今后的工作中不需要,完全可以注释掉。

用于设置Samba服务程序的参数以及作用

参数作用
[database]共享名称为database
comment = Do not arbitrarily modify the database file警告用户不要随意修改数据库
path = /home/database共享目录为/home/database
public = no关闭“所有人可见”
writable = yes允许写入操作

vim /etc/samba/smb.conf

第5步:Samba服务程序的配置工作基本完毕。接下来重启smb服务(Samba服务程序在Linux系统中的名字为smb)并配置iptables防火墙,放通Samba服务使用的四个端口(tcp/139,445,udp/137,138),然后就可以检验配置效果了。

service smb restart     #重新启动Samba服务

service smb status     #查看Samba服务的状态

iptables -A INPUT -p tcp --dport 139 -j ACCEPT

iptables -A INPUT -p tcp --dport 445 -j ACCEPT

iptables -A INPUT -p udp --dport 137 -j ACCEPT

iptables -A INPUT -p udp --dport 138 -j ACCEPT

使用iptables命令配置的防火墙默认会在系统下一次重启时失效,如果想让配置的防火墙策略永久生效,执行保存命令:

service iptables save

CentOS7下添加端口的操作:

firewall-cmd --zone=public --add-port=139/tcp --permanent(--permanent永久生效,没有此参数重启后失效)

firewall-cmd --zone=public --add-port=445/tcp --permanent

firewall-cmd --zone=public --add-port=137/udp --permanent

firewall-cmd --zone=public --add-port=138/udp --permanent

firewall-cmd --reload      # 重新加载防火墙

systemctl restart firewalld.service    # 重启防火墙

接下来就是在Windows系统下连接Samba服务了,只需在Windows的“运行”命令框中(用快捷键“Win+R”就可以打开)输入两个反斜杠,然后再加服务器的IP地址即可。

正确输入新建的samba账户名以及使用pdbedit命令设置的密码后,就可以登录到共享界面中了,如下图所示。此时,我们可以尝试执行查看、写入、更名、删除文件等操作。

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一. Samba 简介 SambaSMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的; 大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器; 我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说和FTP是不一样的。 二. Samba的几个套件,安装及简单配置 sambasamba-client, samba-common 一句 sudo apt-get install samba samba-client 就能全部装上 启动samba也很简单: sudo /etc/init.d/samba start 设置samba的密码, 可以先添加samba用户, 必须是系统用户。 smbpasswd -a yourname 三. 互访 1)windows访问ubuntu windows访问ubuntu很简单, 先在ubuntu上设置共享目录即可, 鼠标右键点目录,选择sharing options, 够选share this folder,需要的话也可以够选下面的allow write 这时在windows的网络邻居中的网络中查找就能找到共享目录了,通过//host也行 2)ubuntu访问windows 第一种:在ubuntu的网络中直接浏览访问 位置->网络,点击界面中windows网络->workgroup,在workgroup组中就可以看到windows计算机名,双击会弹出输入用户名和密码的对话框,将我们上面设置smb的用户名和密码输入就可以进行访问。 第二种:用ubuntu 系统自带的连接到服务器功能访问 位置->连接到服务器,在服务类型中选择“windows共享”,在服务器中输入windows计算机的ip地址或计算机名,点击连接,这样在系统桌面中就会显示一个连接到windows 计算机的文件卷,里面就是windows计算机的共享目录了。 同样在访问的时候要输入smb的用户名和密码。 第三种:用mount’挂载windows的共享目录到本地磁盘 首先要在ubuntu系统中建立一个挂载点,在这里我们建立的挂在点为 /mnt/wind 同样在保证网络连接正常,且windows中有共享目录的前提下,进行一下操作 以windows的ip为192.168.0.1,共享文件夹为share为例 命令如下: mount -t smbfs –o username=wangyh,password=123456 //192.168.0.1/share /mnt/wind 有是这样在访问的时候会出现中文乱码的问题,这样我们可以按下面命令来执行,可以解决这个问题 mount -o smbfs -o iocharset=uft8,codepage=cp936,clmask=777,fmask=777,userneme=wangyh,password=123456 //192.168.0.1/share /mnt/wind 注解:usename和password都为smb的用户和密码,如果要详细了解mount命令,使用man mount在终端查看详细用法 第四种:使用smbclient 命令 一般来讲先列出所有共享目录,命令如下: smbclient –L //192.168.0.1/ -U yourname 输入smb的密码后,将看到共享目录列表。 假设进入共享目录share,命令如下: smbclient //192.168.0.1/share -U yourname 之后将看到一个smb:> 已经进入了smb模式,有些像ftp,敲help可以查看相关命令,get,put可以下载和上传文件。 五. 小结 以上几步,对于简单使用ubuntu和windows的文件共享于互访已经足够,更详细的资料可以参考:http://linux.vbird.org/linux_server/0370samba.php#server_pkg

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值