安装Samba,实现Ubuntu12.04和win7的文件共享

2024-06-16 12:18

本文主要是介绍安装Samba,实现Ubuntu12.04和win7的文件共享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是写的第一篇文章,很大部分是转载的别人的东西,在网上转来转去也不知道是谁的,在此声明,不是原创,写在这里是为了分享我安装配置Samba服务器的过程经验,向和我一样的刚开始不明白的人分享我遇到的问题和应该注意的地方。之前用的是RedHat的,经发哥推荐,开始用Ubuntu12.04。更换了网易163的源。因为要用到嵌入式的交叉编译,就安装Samba。搞了一天。

我是在win7上的vmvare上装的Ubuntu12.04 。

1、安装Samba服务器

sudo apt-get install samba
sudo apt-get install smbfs
查看Samba是否安装成功
sudo dpkg -l samba*

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================

出现上面的表示安装成功。
2、创建共享目录
sudo mkdir /home/xxx/share_samba      创建共享目录
sudo chmod 777 /home/xxx/share_samba  给共享目录设置权限
“xxx”是你的主机名,这个共享文件夹可以根据你自己的喜好来创建。
3、编辑Samba的配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup  备份配置文件,这是一个好习惯
sudo vim /etc/samba/smb.conf<span style="white-space:pre">	</span>对配置文件进行编辑
找到global],workgroup = WORKGROUP ,(网上有的版本说把WORKGROUP改成MSHOME,我没有改,也不知道是什么意思,待解决),并在后面添加如下信息:
display charset=UTF-8
unix charset=UTF-8
dos charset=cp936
这三行是为了防止出现中文乱码的情况(具体也不明白)
找到security=user (若此句前面有#号则去掉,在smb.conf文件中“#“和”;“都是注释,)并在后面加上username map = /etc/samba/smbusers
还有将紧接着的passdb backend = tdbsam 改成 passdb backend = smbpasswd

在文件最后,添加下面的内容

[share]
comment=This is Linux share directory
path=/home/xxx/share_samba
available=yes
browseable=yes
writable=yes
valid users=dayu    dayu是下面要添加的Samba服务器用户名
create mask=0700
directory mask=0700
force user=nobody
force group=nogroup
4、创建Samba账户

在此创建的Samba账户是dayu,该用户只能登陆Samba服务器,不能登陆Ubuntu系统

sudo useradd dayu
sudo smbpasswd -a dayu  为dayu设置登陆密码,不是登陆Ubuntu的密码,是登陆Samba的密码
然后会要求你输入Samba账户(dayu)的密码
sudo cat >/etc/samba/smbusers 打开新建立的配置文件
在这个新建立的文件内加入下面这一行并保存
dayu="network username"
如果将来需要更改dayu的网络访问密码,也用这个命令改
sudo smbpasswd -a dayu 
删除网络使用者的账号的命令是把上面的-a换成-x

如果希望增加两个samba账户则以空格隔开即可,相应改动:
user1 user2= “network username”
validusers = user1 user2

5、重启Samba服务器

sudo  /etc/init.d/smbd restart
6、测试

smbclient -L //localhost/share_samba

[sudo] password for xxx:
Enter root's password:
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.4.0]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
share Disk Shared Folder with username and password
IPC$ IPC IPC Service (ubuntu server (Samba, Ubuntu))
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.4.0]
Server Comment
--------- -------
xxx-PC
UBUNTU ubuntu server (Samba, Ubuntu)
。。。

如果你的系统没有smbclient ,会提示你安装smbclient。

$sudo apt-get install smbclient

7、使用

可以到windows下输入ip使用了,在文件夹处输入 "\\" "Ubuntu机器的ip”
输入账户名:dayu和密码。如果不能成功使用,可以调整虚拟机的网络连接方式,nat,关闭的防火墙,win7:控制面板—网络和intelent—防火墙,关闭ubuntu的防火墙,命令:sudo ufw disable.核实上面设置的访问用户对于Ubuntu共享文件夹所在的各个目录层次是否具有相应的访问权限,chmod命令

8、以上是有Samba登陆账户和密码的使用,下面是共享文件不需要登陆名和密码的情况

将security=share改为security=share   和  在配置文件添加的

valid users=dayu  去掉
其他的和上面的一样。

折腾了一天,不容易,刚开始什么都不明白。


下面记录几个相关知识:
启动Samba服务器后,可以使用ps命令查看进程:
$ sudo ps -aux
可以看到Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中,主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进程是随着smbd进程启动而启动。

启动samba服务 sudo /etc/init.d/smbd start
关闭samba服务 sudo /etc/init.d/smbd stop
重启samba服务 sudo /etc/init.d/smbd restart

这篇关于安装Samba,实现Ubuntu12.04和win7的文件共享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1066433

相关文章

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3