linux下使用samba共享文件,文件夹

  1. 安装
    1. 步骤:
  • 设置root登录
  • 查看日志
  • 一键脚本
  • 复制
  • 安装

    步骤:

    1. 安装Samba服务器:
      在要共享文件的计算机上安装Samba服务器。

      sudo apt update
      sudo apt install samba
      
    2. 配置Samba共享:
      编辑Samba配置文件,添加共享信息。

      sudo nano /etc/samba/smb.conf
      

      在文件末尾添加以下内容,替换其中的 your_share_name/path/to/shared/folder 为你想要的共享名称和路径。

      [your_share_name]
         path = /path/to/shared/folder
         read only = no
         guest ok = yes
      

      保存并关闭文件。

    3. 设置Samba用户密码:
      创建一个Samba用户,并为其设置密码。

      sudo smbpasswd -a username
      

      其中,username 是你选择的Samba用户名。

    4. 重启Samba服务:

      sudo service smbd restart
      
    5. 在另一台计算机上访问共享:
      在另一台计算机上,使用文件管理器或命令行访问Samba共享。

      smb://ip_address/your_share_name
      

      其中,ip_address 是共享计算机的IP地址,your_share_name 是在Samba配置中定义的共享名称。

    这两种方法都可以在局域网中方便地实现文件共享。选择其中一种方法,根据你的需求进行配置。

    设置root登录

    在 Samba 中启用 root 用户登录并设置 root 用户密码可以通过以下步骤完成:

    1. 设置 Samba root 用户密码:
      使用以下命令设置 Samba 中的 root 用户密码。确保密码与系统中的 root 用户密码相匹配。

      sudo smbpasswd -a root
      

      输入并确认密码。

    2. 编辑 Samba 配置文件:
      打开 Samba 配置文件进行编辑。这通常是 /etc/samba/smb.conf

      sudo nano /etc/samba/smb.conf
      
    3. 在 [global] 部分添加 username map 行:
      [global] 部分中添加以下行:

      [global]
         username map = /etc/samba/smbusers
      
    4. 创建 smbusers 文件:
      创建一个包含用户映射的 smbusers 文件。

      sudo nano /etc/samba/smbusers
      

      在文件中添加以下行:

      root = administrator admin
      

      保存并关闭文件。

    5. 重启 Samba 服务:
      重启 Samba 服务使更改生效。

      sudo service smbd restart
      

    现在,你应该能够使用 root 用户登录到 Samba 共享。请注意,使用 root 用户登录 Samba 可能会带来一些安全风险,因此请确保仅在必要时使用,并确保密码强度足够。

    查看日志

    sudo less /var/log/samba/log.smbd
    

    一键脚本

    #!/bin/bash
    # 以下是一个简单的一键 Shell 脚本,用于安装 Samba,配置 Samba 以允许 root 用户登录,并共享 /root/ 目录
    # 安装 Samba
    sudo apt-get update
    sudo apt-get install -y samba
    
    # 备份原始的 smb.conf 文件
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
    
    # 配置 Samba
    cat <<EOL | sudo tee /etc/samba/smb.conf
    [global]
       workgroup = WORKGROUP
       server string = Samba Server %v
       netbios name = ubuntu
       security = user
       map to guest = bad user
       username map = /etc/samba/smbusers
    
    [RootShare]
       path = /root/
       writable = yes
       guest ok = yes
       valid users = root
       force user = root
       force group = root
    EOL
    
    # 创建 smbusers 文件
    echo "root = administrator admin" | sudo tee /etc/samba/smbusers
    
    # 重启 Samba 服务
    sudo service smbd restart
    
    # 设置 Samba root 用户密码
    sudo smbpasswd -a root
    
    echo "Samba 安装和配置完成。"
    

    复制

    smbclient 命令行界面中,你可以使用 get 命令来从 Samba 共享复制文件到本地。以下是一些基本的示例:

    1. 复制单个文件:

      smb: \\hs\\> get handshake_CUZB3n_E8-B5-41-28-9C-A3_2023-12-13T12-09-41.cap
      

      这将从 Samba 共享下载文件到当前本地工作目录。

    2. 复制整个目录:

      smb: \\> lcd /path/to/local/directory
      smb: \\> recurse
      smb: \\> prompt
      smb: \\> mget *
      

      这将切换到本地目录,递归下载共享目录中的所有文件。prompt 命令用于确认是否要下载每个文件。

    3. 指定本地文件名:

      smb: \\hs\\> get handshake_CUZB3n_E8-B5-41-28-9C-A3_2023-12-13T12-09-41.cap local_filename.cap
      

      这将从 Samba 共享下载文件,并将其保存为指定的本地文件名。

    请注意,在 Samba 的 smbclient 命令行中,有时需要在命令前加上 ! 来执行本地命令。例如:

    smb: \\hs\\> !cp handshake_CUZB3n_E8-B5-41-28-9C-A3_2023-12-13T12-09-41.cap /path/to/local/directory/
    

    上述命令中,!cp 表示执行本地的 cp 命令。


    欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。

    ×

    喜欢就点赞,疼爱就打赏

    //