与 ubuntu 在本地网络上共享文件夹

与 ubuntu 在本地网络上共享文件夹

我尝试在 ubuntu 上共享文件夹并通过 Windows 连接到它,目前我知道如何通过以下步骤执行此操作(基于 GUI): https://linuxhint.com/share-folder-on-local-network-with-ubuntu/

但是,由于我有很多计算机都需要执行此操作,我想构建一个 bash 文件,该文件将在每台运行它的计算机上自动执行此操作,但我在互联网上找不到一种方法来通过命令行界面共享已检查以下所有内容的文件夹(在下面的“本地网络共享图片”中)。

这些是我想要使用 CLI 执行的步骤:

  1. 从显示的列表项中选择“本地网络共享”选项: 本地网络分享图片

  2. 选中以下附加屏幕截图中显示的框,然后单击“创建共享”按钮: 文件夹共享图片

假设我想共享以下文件夹:/home/mkdahan/Desktop/Share_Folder

哪个终端指令可以实现这一点?

我尝试构建一个脚本来共享文件夹 /home/mkdahan/Desktop/Share_Folder,但即使重新启动后,该文件夹仍保持“未共享”状态,正如 GUI 所显示的那样:


#!/bin/bash

sudo apt-get update
sudo apt-get install samba
sudo apt-get install smbclient

sudo cp /etc/samba/smb.conf ~/home/mkdahan/Desktop/Share_Folder


if sudo grep -Fxq '[Share_Folder]'  /etc/samba/smb.conf
then
    # code if found
    echo the '[Share_Folder] >> /etc/samba/smb.conf' exist at samba.conf
else

    echo [Share_Folder] | sudo tee -a /etc/samba/smb.conf
    echo path =  /home/mkdahan/Desktop/Share_Folder | sudo tee -a /etc/samba/smb.conf
    echo valid users =  salab  | sudo tee -a /etc/samba/smb.conf
    echo read only = no | sudo tee -a /etc/samba/smb.conf
fi


if sudo grep -Fxq 'server min protocol = NT1' /etc/samba/smb.conf
then
    echo the "server min protocol = NT1" exist at /etc/samba/smb.conf
else
    # append after [Global] the line "server min protocol = NT1"
    echo try to write to smb.conf    
    sudo cp /etc/samba/smb.conf /home/mkdahan/Desktop/Share_Folder
    sudo sed -i '/^\[global\]/a\server min protocol = NT1' /home/mkdahan/Desktop/Share_Folder/smb.conf 
    sudo mv /home/mkdahan/Desktop/Share_Folder/smb.conf /etc/samba/smb.conf 


fi

# Restart the samba
sudo service smbd restart
# check your smb.conf for any syntax errors
testparm

另外,我发现如果我通过 GUI 共享文件夹,smb.conf 文件就不会有脚本所做的更改,所以我认为这不是进行所需共享的正确方法(我使用此方法因为这是我在 NET 上找到的)。

长话短说: 我如何使用 CLI 来完成上面使用 GUI 演示的两个步骤?

无论如何非常感谢!

答案1

您可以更改两个不同的文件来创建 Samba 共享:

编辑/var/lib/samba/usershares/

您可以使用文件管理器 GUI 来执行此操作,使用Local Network Share。或者您可以使用net usershare add ...命令,但我发现语法很别扭(请参阅Ubuntu 论坛上的这篇文章)。最后,如果您知道自己在做什么,您可以手动编辑文件。

这会在共享的文件夹上添加“共享”标志。

使用以下方法检查创建的共享net usershare info --long

编辑/etc/samba/smb.conf

没有 GUI 工具可以编辑它,您必须手动编辑它。

这不会在共享的文件夹上创建“共享”标志。

使用以下方法检查创建的共享testparm -s


我建议在 smb.conf 中创建共享,因为无论如何您都会使用“服务器最小协议”调整来更改那里的基本设置。

但请记住不要同时使用两种方法共享同一个文件夹。

相关内容