hack のためのネタ帳, etc,,,

まとめ

共有フォルダを other に公開する場合、/ から目的のフォルダまで途中階層全てに渡って other に対する eXecute の許可が必要。

状況

Ubuntu 22.04.1 LTS で guest アクセス可能な共有を作りたくて、/etc/samba/smbd.conf に以下のような設定を行った。
[yyy]
  comment = yyy
  browsable = yes
  path = /home/xxx/yyy
  guest ok = yes
  read only = yes

とりあえず、systemctl restart smbd したら問題なく動いて、設定を testparam で確認しても問題は出てこないのだが、//localhost/yyy にアクセスできない。
smbclient で確認してみると
$ smbclient //localhost/yyy -U zzz
Password for [WORKGROUP\zzz]:
Try "help" to get a list of possible commands.
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
smb: \>
みたいになってて
これに対するログは
$ cat /var/log/samba/log.HOSTNAME
...
[2022/09/16 12:09:43.818739,  0] ../../source3/smbd/service.c:168(chdir_current_service)
  chdir_current_service: vfs_ChDir(/home/xxx/yyy) failed: 許可がありません. Current token: uid=65534, gid=65534, 1 groups: 65534
 9月 16 12:09:43 HOSTNAME smbd[3959780]: pam_unix(samba:session): session closed for user nobody
みたいになってる。

samba guest ok」でググってみたのだが、
基本 guest ok = yes しとけば良さそうな感じで、
その他、map to guest , guest account 等の関係ありそうなパラメータは testparam -v してもデフォルト値のままで特に問題ありそうに見えないし、 辺りに AppArmor が関係ある場合の話とかあるけど、前の環境ではそんなのいじった記憶ないぞ?と、途方に暮れる。

解法

chdir_current_service vfs_ChDir samba NT_STATUS_ACCESS_DENIED」でググった所以下のページを見つけた。
曰く、/, /home, /home/xxx, /home/xxx/yyy 等途中階層のディレクトリ全てについて chmod o+x が必要ですよと。

確認してみた所、
$ lst -d /home/xxx
drwxr-x---+ 23 xxx xxx 44 2022-09-16 12:10:02 /home/xxx
みたいな感じで、/home/xxx に o+x が抜けていたので、
chmod o+x /home/xxx
してみたところ、無事アクセスすることができた。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます