http://blog.csdn.net/pipisorry/article/details/51812022

本文主要说明 linux和windows文件共享, windows和ubuntu互相访问 , Linux和安卓设备文件互传和共享。(ubuntu16.04, 14.04和win7测试通过)

linux和windows文件共享

window对linux文件内容进行操作,利用linux samba服务,将linux的文件设成共享文件,window就可以以访问共享文件的方式来访问linux文件了。

Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。

Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的;
在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器;
我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说和FTP是不一样的。

samba命令

Samba服务器的启动、关闭和重启

安装完成后,可以cd到/etc/init.d/目录下,查找smbd命令,然后执行如下命令:
启动Samba服务器:#sudo /etc/init.d/smbd start
关闭Samba服务器:#sudo /etc/init.d/smbd stop
重新启动Samba服务器:#sudo /etc/init.d/smbd restart
启动Samba服务器后,可以使用ps命令查看进程:#ps -aux。此时,可以看到Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中, 主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进 程是随着smbd进程启动而启动。

按照下面的配置成功后,每次重启电脑后只要

linux和windows要在同一局域网内(如连接上同一个wifi或者linux开启网络共享)

右键共享某个目录,且对当前目录有相应权限

sudo /etc/init.d/smbd start就可以了。

皮皮blog

linux端的配置

samba安装的配置

注意,修改配置文件一般要sudo /etc/init.d/smbd restart。

安装samba

pika:~$sudo apt-get install samba

sudo apt-get install cifs-utils

后面这个在两台ubuntu互访时必须安装

增加samba用户pika

{如果下面设置security=share不用密码登录就可以访问的话这个可以不设置}

pika:~$sudo smbpasswd -a pika
New SMB password:
Retype new SMB password:
Added user pika.

Note: 增加的用户必须是系统中存在的用户,lz这里添加的是当前用户。用户不存在时候要添加:sudo useradd。如sudo useradd pikasmb,要注意,上面只是增加了pikasmb这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。

配置Samba服务(修改Samba配置文件)

Samba服务器主要配置文件为/etc/samba/smb.conf,(并且可以将NetBIOS名与主机的对应关系写在/etc/samba /lmhosts文件中,此步骤可忽略)。

要共享linux上的目录,在Linux共享一个目录,将建立好的目录的设置信息写入/etc/smb.conf文件即可(见下面的windows访问ubuntu)。

在Windows系统中不用输入密码访问Linux共享目录,修改samba配置文件smb.conf:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak       //修改配置文件之前最好做个备份
sudo vim /etc/samba/smb.conf
将文件中的内容做如下相应修改:

1 #security=user 删掉注释,修改为:security=share

lz没找到这个,所以直接在#======================= Share Definitions =======================的最后加的(配置文件末尾,不能是这行下面!)

security=share
设置的含义:
share:用户不需要账户及密码即可登录samba服务器
user:由提供服务的samba服务器负责检查账户及密码(默认)
server:检查账户及密码的工作由另一台windows或samba服务器负责
domain:指定windows域控制服务器来验证用户的账户及密码)

2 linux系统下的目录可以直接通过右键配置共享(推荐,较易操作,且好取消共享)

直接右键会出错,但是会提示Ask the administrator to add the line "usershare owner only = false"  to the [global] section of the smb.conf to allow this.

这个是右键设置/media/pika/files/mine/python_workspace/NLP/SentimentClassification共享时出错的提示,加上后就可以直接通过右键设置共享了。

[global]

usershare owner only = false

3 也可以在/etc/samba/smb.conf文件结尾添加如下行

{不推荐,因为不好取消共享。如果进行了第2步设置,这个不用了,直接右键要共享的目录就可以!}

Note: 一个share对应一个目录,如果要共享两个目录就设置两个share(异名)

# 共享文件名称或标记 这个可随意写 只是一个标记(在windows上显示的共享目录名)
[share]
comment=this is Linux share directory
#要共享的目录1
path=/home/pika/share
#允许匿名用户登录,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和public = yes是一样的
public=yes
#可写权限
writable=yes
#显示文件,就是在网络邻居中能看到共享名
browseable=yes
valid users=pika
available=yes

#要共享的目录2

[nlpshare]
comment=this is Linux share directory
path=/media/pika/files/mine/python_workspace/NLP/SentimentClassification
public=yes
writable=yes
browseable=yes
valid users=pika
available=yes

#要密码访问的共享目录3...

其中[ftp]项目是要求用户名密码访问的,用户名要求为gcwh,当然你也可以指定一个组(eg.@gcwh)!
密码保存在/etc/samba/smbpasswd中,用户名用useradd创建,密码用smbpasswd创建,创间之后cat /etc/samba/smbpasswd 看看是否有了!
Notes: 先确保不要密码是可以访问之后再修改成有密码访问,可以避免纠缠在一些网络原因导致的不能访问的问题上!密码访问本身简单,关键是要正确创建用户和samba密码的对应项(在/etc/samba/smbpasswd中,当然也可以指定其它文件)

保存退出

Note: 如果没有缩进,则=两边不要空格。注释必须单行重写,不能加在定义后面!!!否则对应设置的无效。

常见的samba配置及说明
[share] # 该共享的共享名
        comment = smb share test # 该共享的备注
        path = /home/share # 共享路径
        allow hosts = host(subnet) # 设置该Samba服务器允许的工作组或者域
        deny hosts = host(subnet) # 设置该Samba服务器拒绝的工作组或者域
        available = yes|no # 设置该共享目录是否可用
        browseable = yes|no # 设置该共享目录是否可显示
        writable = yes|no # 指定了这个目录缺省是否可写,也可以用readonly = no来设置可写
        public = yes|no # 指明该共享资源是否能给游客帐号访问,guest ok = yes其实和public = yes是一样的
        user = user, @group # user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开
        valid users = user, @group # 指定能够使用该共享资源的用户和组
        invalid users = user, @group # 指定不能够使用该共享资源的用户和组
        read list = user, @group # 指定只能读取该共享资源的用户和组
        write list = user, @group # 指定能读取和写该共享资源的用户和组
        admin list = user, @group # 指定能管理该共享资源(包括读写和权限赋予等)的用户和组
        hide dot files = yes|no # 指明是否像UNIX那样隐藏以“.”号开头的文件
        create mode = 0755 # 指明新建立的文件的属性,一般是0755
        directory mode = 0755 # 指明新建立的目录的属性,一般是0755
        sync always = yes|no # 指明对该共享资源进行写操作后是否进行同步操作
        short preserve case = yes|no # 指明是否区分文件名大小写
        preserve case = yes|no # 指明是否保持大小写
        case sensitive = yes|no # 指明是否对大小写敏感,一般选no,不然可能引起错误
        mangle case = yes|no # 指明混合大小写
        default case = upper|lower # 指明缺省的文件名是全部大写还是小写
        force user = testuser # 强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= testuser强制建立文件的属主是testuser,同时限制create mask = 0755,这样guest就不能删除了
        wide links = yes|no # 指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用
        max connections = 100 # 设定最大同时连接数
        delete readonly = yes|no # 指明能否删除共享资源里面已经被定义为只读的文件

[Samba服务器配置(2)--认识smb.conf配置文件]

[配置文件模板]

启动Samba服务

pika:~$sudo /etc/init.d/smbd start

重启: sudo /etc/init.d/smbd restart    修改配置后一般都要重启

检查Samba是否安装配置正确

启动Samba客户端程序

smbclient -L //localhost/share -U pika

“-L”即为list的含义,“-U”是user的意思,如果Samba服务器是无密码访问的话,可以省略“-U  Samba用户名”。

pika:~$smbclient -L //localhost/share
WARNING: The "syslog" option is deprecated
Enter pika's password:    #这里可以使用sudo smbpasswd -a pika设置的密码
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.9-Ubuntu]

    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    share           Disk      this is Linux share directory
    IPC$            IPC       IPC Service (pika server (Samba, Ubuntu))
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.9-Ubuntu]

    Server               Comment
    ---------            -------
    PIKA                 pika server (Samba, Ubuntu)

    Workgroup            Master
    ---------            -------
    WORKGROUP            PIKA

Note: 出错处理:

1 session setup failed: NT_STATUS_LOGON_FAILURE

该错误表示用户有误, 可能是用户不存在, 也有可能是密码错误, 或者用户只是在samba和系统的用户中的一个地方存在,   总之是用户和密码有问题,一般是密码错误,密码不是电脑密码,而是自己设置的samba密码。

2 tree connect failed: NT_STATUS_BAD_NETWORK_NAME
  这个错误则表示共享目录有误, 可能是目录不存在, 或者权限不对

[客户端访问]

linux下进行文件共享

共享目录时,必须对当前目录有共享权限:

鼠标右键点目录,permissions中设置

或者$sudo chmod 777 /home/pika/share

pika:~/share$ll
total 44
drwxrwxrwx  2 pika   pika     4096  7月  2 19:37 ./
pika:/media/pika/files/mine/python_workspace/NLP/SentimentClassification$ll
total 37
drwxrwxrwx 1 root root  4096  7月  1 22:18 ./
鼠标右键点目录,选择sharing options, 勾选share this folder和guest access(这样别人访问时候就不需要密码了),需要的话也可以够选下面的allow write 。

linux中share的目录会加上share标志

另外可能需要关闭linux的防火墙:sudo service iptables stop或者$ sudo ufw disable, 刷新重连。这样才能被别人访问到。

windows端的配置

如果想要linux访问到windows的共享文件,需要

1 在“控制面板\所有控制面板项\网络和共享中心\高级共享设置”开启“关闭密码保护共享”和“启用文件和打印机共享”。关闭密码保护共享的操作会启用Guest账号,如果Guest账号设置了密码,即使选择了关闭密码保护共享保存修改后,再次打开发现依然会是启用密码保护,这时候需要到用户管理中清空Guest账号的密码。

2 需要开启guest帐户

control panel > user accounts and family safety > useraccounts > manage accounts手动开启guest帐户

如果不启用guest帐户,将会出现linux访问windows时出现对话框,要求输入用户名和密码,并且用户名处是Guest,呈灰色不可选状态,只能输入密码。

3 可能需要关闭windows和杀毒软件的防火墙

(windows:打开“网络和共享中心”,windows防火墙,关闭相关项;杀软:(如bitdefender)firewall 中点击off关闭)

设置共享文件夹

要共享的文件夹 - 右键 - 属性 - 共享:共享 - 高级共享 - 共享此文件夹

[win7系统如何给共享的文件夹设置账号密码]

皮皮blog

ubuntu、windows之间的互相访问

linux系统间的文件共享

一种是直接使用samba,另一种也可以使用NFS。

ubuntu之间的互访

都要安装

pika:~$sudo apt-get install samba

sudo apt-get install cifs-utils

否则两台电脑就算都能互相ping通,也不能进行文件共享,也不知道为嘛。

还都要关闭防火墙,否则只能访问到没开防火墙的一方

sudo ufw disable
[使用NFS在linux之间共享目录与文件 ]

ubuntu访问windows

可能需要安装sudo apt-get install cifs-utils,好像也没用

network > windows networks > WORKGROUP > 点击共享文件的windows电脑

就可以看到共享的文件了。

如果提示要求输入用户名和密码

用户名:windows上的用户名

密码:windows对应用户名的登录密码

windows访问ubuntu

windows访问ubuntu很简单, 先在ubuntu上设置共享目录即可。但是linux和windows要在同一局域网内(如连接上同一个wifi),当然也可以使用笔记本中的windows或者linux开启wifi来创建一个局域网wifi,参考[笔记本开启无线网络共享],此时linux所在笔记本和windows所在笔记本都在同一个局域网内,可以进行文件共享。

网络中查找并读写文件

这时在windows的网络邻居中的网络中查找就能找到共享目录pika/share和pika/sentiment。

如果进入共享目录需要密码,就填写之前在linux中设置的samba帐户和密码,或者linux用户名及其对应密码。

windows无法访问linux的共享目录的解决

windows提示无法访问\\pika\share时可以试试

先看能不能ping通,不能可能是不在同一局域网。

重启samba服务sudo /etc/init.d/smbd restart

或者重新搜索共享的电脑(前两个一般有效)

或者刷新一下 或者重新连网

或者单击[开始-运行] 输入 “secpol.msc”-“本地策略”-“安全选项”-网络安全:LAN Manager 身份验证级别”-单击列表中:发送LM和NTLMv2,如果已协商,则使用NTLMv2协议。

终极解决:关闭linux的防火墙:sudo service iptables stop

或者$ sudo ufw disable, 刷新重连。

windows可以正常访问linux的情况

不过不知道为啥,之前的一个截图带着一个锁标志(捕获.PNG),不能被修改,而捕获1可以。

Note: lz这两个图就是通过windows截图再写入linux再贴到这里来的。

使用\\192.168.1.100\share访问linux共享文件夹(lz不推荐)

首先要知道samba服务器的ip地址:terminal中输入ifconfig,查找wlan对应的ip地址,如192.168.1.100(linux的本地连接的IP地址,也就是samba服务器的IP地址)

wlan0     Link encap:Ethernet  HWaddr b8:76:3f:2f:3d:7f  
          inet addr:192.168.1.100

在Windows 下访问共享目录

点击运行(或者win+R快捷键),输入\\192.168.1.100\share,这样就能以匿名用户访问共享目录share了。

当然也可以直接到windows下输入ip使用,在文件夹处输入 "\\" + "Ubuntu机器的ip或主机名" + "\\" + "share";

windows访问共享文件时windows防火墙可能需要关闭(lz并没有管)。

The Unofficial Samba HOWTO

Samba服务器配置(1)(2)(3)*

Ubuntu下配置samba服务器*

鸟哥的linux私房菜:第十六章、文件服务器之二: SAMBA 服务器

samba Documentation

windows 和 Ubuntu实现文件共享

Ubuntu+Win7+Samba实现文件共享

ubuntu安装samba实现与windows文件共享

windows linux 之间文件共享 samba配置
[Ubuntu设置局域网Windows共享文件Samba]

[不同级别的权限控制参考:NAS应用-Ubuntu 16.04 Samba文件共享]

皮皮blog

Linux和安卓设备文件互传和共享

打开手机蓝牙对所有设备可见

ubuntu中添加phone蓝牙配对 all settings > bluetooth > 添加符号, 电脑会在第三步中自动搜索手机设备,产生一个配对数字串,输入到手机中就配对成功了。

(lz的笔记本不自带蓝牙,买的蓝牙适配器,自带的当然更好)

配对成功后如下

ubunbu向手机发送文件

可以通过上图中的send files向手机发送文件。

手机向ubuntu发送文件

Ubuntu中,关于蓝牙传送文件,默认是不接收的,所以要去设置为接收。不设置会出错:在安卓中,选择文件的分享,通过蓝牙发送,发送到Ubuntu桌面端的蓝牙的,却发送失败。

dash中搜personal file,即Personal File Sharing 中文是:个人文件共享
然后进去将receive files...打勾,accept files选择only for set up devices(只接收配对的手机发来的文件)

当然也可以将Accept files改为Always即可正常接收任意别的(手机的)蓝牙发送过来的文件了。

电脑接收到的文件应该在用户文件夹的downloads文件夹下。

[安卓手机通过蓝牙发送文件到Ubuntu发送失败]

from: http://blog.csdn.net/pipisorry/article/details/51812022

ref: windows文件共享参考[两台windows笔记本创建家庭组实现文件共享]

[一步一学Linux与Windows 共享文件Samba]

linux及windows文件共享的更多相关文章

  1. 零基础学习Linux(三)linux与windows文件共享

    上次的博文零基础学习Linux(一)环境搭建中我们已经将linux环境部署完毕了,接下来我们就可以在linux上进行软件的安装和环境的配置.但在进行这些操作之前,我们还需要解决一个问题——Linux与 ...

  2. NO1:安装VMLinux虚拟机,安装配置Samba实现Linux与Windows文件共享

    离开技术好些年,仅凭记忆开始学习.同时决定在Linux系统学习C语言. 一.下午安装了VM 8.0,安装RedHat Enterpris Server 6.4虚拟操作系统,都还比较顺利. 二.要实现L ...

  3. Samba搭建Linux和Windows文件共享服务

    一.Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享 ...

  4. 树莓派配置samba服务器,实现linux、windows文件共享

    一.安装samba服务器 输入如下命令: 二.配置文件smb.conf 找到[homes],将read only那里的yes改为no,允许读写 添加用户和设置密码 sudo smbpasswd -a ...

  5. VMware linux与windows文件共享

    将要共享的文件做成一个iso文件,然后打开VMware

  6. 使用samba实现linux与windows文件共享

                       1,安装samba                              sudo apt-get install samba                 ...

  7. 使用samba实现linux与windows共享(测试成功)

    samba服务器搭建    实现linux与windows文件共享有很多种方法,诸如wpc,vmtools等,今天我来介绍我在rehat系统中实验成功并且现在在用的的方法,直接给出操作步骤:     ...

  8. Linux 与 Windows 文件互传(VMWare)

    虚拟机无桌面的Linux 与 物理机Windows 文件互传有很多种方法,现在先说一种通过共享文件夹的形式,其他方法后续再补充 1.     背景 1)        虚拟机系统:VMWare无桌面的 ...

  9. Linux 与 Linux Windows 文件共享 小知识

    Linux 与 Linux Windows 文件共享   前提说明:windows主机信息:192.168.1.100 帐号:abc 密码:123 共享文件夹:sharelinux主机信息:192.1 ...

随机推荐

  1. [FJOI2014]最短路径树问题

    Description 给一个包含n个点,m条边的无向连通图.从顶点1出发,往其余所有点分别走一次并返回. 往某一个点走时,选择总长度最短的路径走.若有多条长度最短的路径,则选择经过的顶点序列字典序最 ...

  2. 计蒜客NOIP模拟赛(3)D2T1 小区划分

    一条街道的两侧各连续坐落着 N 座单元楼.现在要为这些单元楼划分居民校区. 规则如下: 每个小区只能由同一侧连续的若干座单元楼组成.且两侧都恰有 K 个小区(每个小区至少有一栋楼). 两侧的小区划分规 ...

  3. python 二维数组遍历

    import numpy as np world=np.zero([5,5]) for i in range(0,world.shape[0]) for j in range(0,world.shap ...

  4. Python Web学习笔记之多道程序设计技术和操作系统的特性

    采用了多道程序设计技术的操作系统具有如下特性 : ① 并发性.它 是指两个或两个以上的事件或活动在同一时间间隔内发生.操作系统是一个并发系统,并发性是它的重要特征,操作系统的并发性指计算机系统中同时存 ...

  5. c++读写MySQL

    看过很多C或是C++操作MySQL数据库的文章,大部分太吃力了,甚至有一部分根本没有很好的组织文字,初学者比较难以接受,即使是C++或是C高手也是比较难看懂.写这篇文章的目的不是别的,就一个,告诉您用 ...

  6. Linux常用命令大全(归类)

    最近都在和Linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因, ...

  7. js error

    0x800a0259 - JavaScript 运行时错误: 未知的运行时错误 <p id="navigatorInfo"></p> var txt = & ...

  8. 在""中添加"

    加上\即可 "return '<span onmouseover=MouseOver(this) onmouseout=MouseOut(this) onclick=editTea(\ ...

  9. angularjs中关于跨域设置白名单

    在config中注入$sceDelegateProvider服务使用resourceUrlWhitelist([])方法添加白名单 跨域时将method的属性设置为"jsonp"就 ...

  10. Lintcode392 Is Subsequence solution 题解

    [题目描述] Given a string s and a string t, check if s is subsequence of t. You may assume that there is ...