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=arg指定 CIFS 密碼。如果未給予此選項,則PASSWD使用環境變數。如果未直接指定密碼或透過掛載參數間接指定密碼,mount.cifs則將提示輸入密碼,除非guest指定了該選項。

這引導我們選擇guest

guest不提示輸入密碼

這裡有適合您的解決方案嗎?

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

相關內容