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 WORKGROUPMYHOSTPC のエントリが一覧表示されます。

私も試してみました(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 キーを押して null パスワードを入力します。)

そして後に、-Nこれが言及した を参照します:

-N|--no-passこのパラメータを指定すると、クライアントからユーザーへの通常のパスワード プロンプトが抑制されます。これは、パスワードを必要としないサービスにアクセスする場合に便利です。

あなたの場合の解決策は?

smbclient -NL //myhostpc/mystuff

同じ効果は にも適用できますmount。以下は からの引用ですman mount.cifs( への参照を検索password)。

password=arg|pass=argCIFS パスワードを指定します。このオプションが指定されていない場合は、環境変数PASSWDが使用されます。パスワードが直接指定されていない場合、または mount の引数を介して間接的に指定されていない場合はmount.cifs、オプションが指定されていない限り、パスワードの入力を求められますguest

すると、次の選択肢が生まれますguest

guestパスワードを要求しない

あなたにとっての解決策はここにありますか?

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

関連情報