zoukankan      html  css  js  c++  java
  • [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)

    场景需求:

    安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行。如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了。一次两次还好说,这编译级别上千次的,每次也需要上传的话,无疑是个人间悲剧。但是有了Samba,犹如雪中送炭啊。
     
    安装
    Ubuntu下安装比较简单,执行
     # install samba samba-common
    即可。当然也可以直接去官网(https://www.samba.org/)下载安装。
     
    配置
    1. 新建共享的目录:
    # mkdir /home/用户名/share
    # chmod 777 /home/用户名/share
     
    2. 修改配置smb.conf
    修改前最好先备份smb.conf文件。
    # cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
    # vim /etc/samba/smb.conf
        2.1 取消 # security = user 的注释,并在后面一行加上 username map = /etc/samba/smbusers
    security = user
    username map = /etc/samba/smbusers
        2.2 在文件的最后面加上以下配置   
    [Share]
    comment = Shared Folder with username and password
    path = /home/用户名/share
    available = yes
    browseable = yes
    public = yes
    writable = yes
    valid users = [访问用户名(系统的用户)]
    create mask = 0700                                 #远程创建目录、文件默认权限
    directory mask = 0700                              #远程访问目录权限
    force user = nobody                                #目录所属用户
    force group = nogroup                              #目录所属用户组

    我的习惯是指给相应的权限给相应的账号,譬如我本身用的是weiyg账号,我会如下配置,这样的话,windows下新建、修改、访问的权限,都会与我weiyg的权限保持一致。这样比较方便。当然,如果本身整个系统都是一个人维护,那就没啥所谓了。

     

    [share]
    path = /home/weiyg/share
    available = yes
    browseable = yes
    public = yes
    writable = yes
    valid users = weiyg
    create mask = 0764
    directory mask =0777
    force user =weiyg
    force group = weiyg

     

        2.3 修改[global]中的workgroup = WORKGROWP ,并添加编码的设置,如下:

    workgroup = WORKGROUP
    display charset = UTF-8
    unix charset = UTF-8
    dos charset = cp936

     

            上面编码设置是为了防止中文目录、文件名乱码的情况。
     
    3. 添加访问用户(系统用户)
    # useradd [用户名]
        对于我的设置来说,其实我是直接用我本身的用户权限访问的。系统本身就存在了weiyg用户了,这时候不需要执行这一步了。如果如上执行的话,过没有设置密码的话,这个用户就只能从远程访问,不能从本机登录。
     
    4. 添加远程访问用户(samba的用户)
    # smbpasswd -a [远程访问用户名]
        执行以上命令,并设置密码。该用户是windows远程访问的用户,并不是系统的用户。当然为了方便,我自己设置的用户名其实是跟我系统用户一样的。即
    # smbpasswd -a weiyg
        如果要删除远程访问用户,执行如下命令。
    # smbpasswd -x [远程访问用户名]
        新建一个/etc/samba/smbusers文件,并保存下面代码:
    [访问用户名] = "network username"
        我是这么设置的 weiyg = "weiyg" (不知道对不对,反正最后可以访问)
     
    启动
    # /etc/init.d/sambd start
    # /etc/init.d/sambd restart
     
    windows远程访问
        在windows文件管理器上点击【映射网络驱动器】并输入ip地址和用户名密码,即可访问到linux下的文件。
        
     
    个人理解原理
        windows下访问用的其实是Samba的账号,然后windows与Samba交互,本质上对文件的操作,其实还是Samba与linux文件交互的系统用户。所以为了方便,我将远程访问用户和系统用户设置成一样的。
     
    以上个人理解,可能存在出入!
     
  • 相关阅读:
    打开网页总结
    学期总结
    总结
    Sprint3
    Sprint2团队贡献分
    6.14
    典型用户与场景
    5种创建型模式
    JAVA 将接口的引用指向实现类的对象
    Java里的接口
  • 原文地址:https://www.cnblogs.com/rond/p/3688543.html
Copyright © 2011-2022 走看看