我的 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] 部分 - 就在下方工作组 = 工作组是我要放置它的位置。然后它将应用于您创建的所有共享,无论您如何创建它们。