两个 ubuntu 系统之间的 Samba 仅是单向的

两个 ubuntu 系统之间的 Samba 仅是单向的

我的 samba 配置有问题。

我有一台 ubuntu 系统,我们将其命名为 A,它直到最近才有了 ubuntu 16.04,现在有了 ubuntu 20.04。这台 A 计算机通过 samba(以及其他方式)连接到第二台计算机,我们将其命名为 B,它安装了 ubuntu 18.04,以便在这些系统之间复制文件。

我在每个系统中都有几个文件夹,在 16.04 中一切正常

格式化并过渡到 ubuntu 20.04 后,连接现在只是单向的。更具体地说,B 再也无法看到 A 中的任何文件夹。不过,这些文件夹在文件中显示为共享。另一方面,当从 A 访问 B 中的共享文件夹时,一切正常。我尝试了一些解决方案,但似乎都无法解决我的问题(显然我在这里遗漏了一些东西)。

/etc/samba/smb.cfg例如,在我的 samba 配置文件 ( ) 中,在两个系统中,我的 [global] 部分都有这个

   workgroup = WORKGROUP
   client min protocol = NT1
   server min protocol = NT1

这是问题中提出的解决方案。它帮助我在从 B 访问共享文件夹时没有收到实际错误,但实际上并没有显示任何共享文件夹(只有一个空文件夹)。

我最后一次尝试是使用来自此的说明地点

匿名共享(理论上)通过添加以下内容进行共享:

[Anonymous]

path = /samba/anonymous
browsable = yes
writable = yes
read only = no
force user = nobody

仅在A系统下#======================= Share Definitions =======================

这在共享文件夹中从 B 查看时创建了一个名为 的文件夹Anonymous,但我实际上无法访问它。它需要密码,但不需要任何密码。既不需要 Samba 密码也不需要用户密码。无论如何,它指向我系统中不存在的文件夹(我尝试过使用现有文件夹,但没有任何变化),但如果我必须对每个共享文件夹都应用此操作,它似乎不太方便。

那么,有人知道如何在两个 ubuntu 系统之间正确共享某个文件夹吗?据我所知,两个系统上都安装了 samba 和 samba 客户端。

编辑(在@Morbious1 的一些评论请求之后):

$testparm -s

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

# Global parameters
[global]
    client min protocol = NT1
    log file = /var/log/samba/log.%m
    logging = file
    map to guest = Bad User
    max log size = 1000
    obey pam restrictions = Yes
    pam password change = Yes
    panic action = /usr/share/samba/panic-action %d
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    passwd program = /usr/bin/passwd %u
    server min protocol = NT1
    server role = standalone server
    server string = %h server (Samba, Ubuntu)
    unix password sync = Yes
    usershare allow guests = Yes
    usershare owner only = No
    idmap config * : backend = tdb


[Anonymous]
    force user = nobody
    path = /home/gorfanidis/share_testing
    read only = No


[printers]
    browseable = No
    comment = All Printers
    create mask = 0700
    path = /var/spool/samba
    printable = Yes


[print$]
    comment = Printer Drivers
    path = /var/lib/samba/printers

$net usershare info --long

[python_projects]
path=/home/xxxx/python_projects
comment=
usershare_acl=Everyone:F,
guest_ok=y

[misc_cerberus]
path=/home/xxxx/misc
comment=
usershare_acl=Everyone:F,
guest_ok=y

[EfficientDet]
path=/home/xxxx/python_projects/EfficientDet
comment=
usershare_acl=Everyone:F,
guest_ok=n

[surveillance object detection]
path=/home/xxxx/Datasets/surveillance object detection
comment=
usershare_acl=Everyone:F,
guest_ok=n

答案1

您遵循的 HowTo 指出此共享定义允许访客访问:

[Anonymous]
    force user = nobody
    path = /home/gorfanidis/share_testing
    read only = No

它的作用恰恰相反。

为了使访客可以访问并确保没有 Linux 权限问题,我建议进行以下更改:

[Anonymous]
    force user = gorfanidis
    path = /home/gorfanidis/share_testing
    read only = No
    guest ok = yes

好的,这似乎可行。但与从文件 (nautilus) 自动运行相比,这有点退步。有办法实现这一点吗?

如果这是单用户系统,您可以做的是添加force user = gorfanidis到 smb.conf 的 [global] 部分 - 就在下方工作组 = 工作组是我要放置它的位置。然后它将应用于您创建的所有共享,无论您如何创建它们。

相关内容