smb.conf 只读任何用户无密码

smb.conf 只读任何用户无密码

我想通过 samba 托管一个路径,任何用户无需密码即可读取。

在我的主机 PC 上的 smb.conf 中:

[global]
   workgroup = WORKGROUP
   server string = %h server (Samba, Ubuntu)
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
[mystuff]
   path = /path/to/my/stuff
   read only = yes
   public = yes
   guest ok = yes
   guest only = yes
   browseable = yes

在其他计算机上,如果我

smbclient -L //myhostpc/mystuff

它说

Enter WORKGROUP\myusername's password:

有趣的是,如果我拼错了,它仍然会显示此信息mystuff。主机 PC 已重新启动,并nmblookup -S WORKGROUP列出 MYHOSTPC 的条目。

我也尝试过(在 ubuntu 上,安装了 cifs-utils)

sudo mount -t cifs //myhostpc/mystuff /tmp/mystuff

但得到

Password for root@//myhostpc/mystuff

如果我尝试

sudo mount -t cifs //myhostpc/mystuff -o username=guest,password="" /tmp/mystuff

(正如我在某处看到的那样),我得到了

mount error(13): Permission denied
Refer to the mount.cifs(8) manual page)

我注意到/var/log/samba/log.

[2022/02/12 14:57:23.569070,  0] ../../source3    /smbd/service.c:166(chdir_current_service)
  chdir_current_service: vfs_ChDir(/path/to/my/stuff) failed: Permission denied. Current token: uid=65534, gid=65534, 1 groups: 65534

我需要让[mystuff]其他计算机上的任何用户都可以看到什么,而无需输入密码?

答案1

文档中smbclient提到了这种特定情况:

password[...] 没有默认密码。如果命令行中没有提供密码(通过使用此参数或向选项添加密码-U(见下文))并且-N未指定选项,则客户端将提示输入密码,即使所需服务不需要密码。(如果不需要密码,只需按 ENTER 即可提供空密码。)

后来,引用了-N这篇文章提到的:

-N|--no-pass如果指定,此参数将禁止客户端向用户发出正常的密码提示。这在访问不需要密码的服务时很有用。

您遇到的问题的解决方案是什么?

smbclient -NL //myhostpc/mystuff

同样的特效也适用于mount。以下是来自man mount.cifs(搜索 的引用password):

password=arg|pass=argPASSWD指定 CIFS 密码。如果未指定此选项,则使用环境变量。如果未通过 mount 的参数直接或间接指定密码,mount.cifs则将提示输入密码,除非guest指定了该选项。

这让我们有了以下guest选择:

guest不提示输入密码

这里为您提供解决方案吗?

sudo mount -t cifs -o guest //myhostpc/mystuff /tmp/mystuff

相关内容