Re: mount -t smbfs の挙動

2023-09-23 Thread Tomoaki AOKI
On Sun, 24 Sep 2023 11:11:28 +0900
ISHII  wrote:

> 広島の石井です。
> 
> 青木さん調査していただいてありがとうございます。
> 
> On Sun, 24 Sep 2023 10:13:30 +0900
> 20230924101330.0cc2564b952d6f0936352...@dec.sakura.ne.jp : Tomoaki AOKI
>  wrote:
> 
> > 青木@名古屋です。 時間が空いて申し訳ありません。
> > 
> > このあたり、/etc/以下に置かれるものの関係はあちこちにバラけがちで
> > 探し難いのですが、
> > 
> > https://cgit.freebsd.org/src/blame/contrib/smbfs/examples/dot.nsmbrc
> > →たぶんこれを基に構築されているので/etc/nsmb.confのコメントと一致
> >  しています。 該当のcharsetsの行はcommit 34ffbc80d694で更新されて
> >  いて、当該commitを見ると
> > 
> > https://cgit.freebsd.org/src/commit/contrib/smbfs/examples/dot.nsmbrc?id=34ffbc80d69446c64599a878a0a950c9e66f7bf5
> > →diffを見ると、変更前がman nsmb.confと同じになっています。
> > 
> > 従って、man pageの方がこの変更に追従できていません。
> > コメントの方を信用されるのが吉と思います。
> 
> そのようにします。
> が、man page 10年以上放置されているとは
> 
> ISHII 

青木@名古屋です。

こういう完全ボランティアベースのプロジェクトでは、「動作」や「機能」に
直接関係しないマニュアルやドキュメントはモチベーションが上がり難くて
放置されがちですね。 プログラム中のコメントやヘルプ表示は実装のついでに
直したり、設定ファイルの(事実上の)サンプルは自分でも使うために
更新されることが多いとは思いますが。

# portsのINDEXも削除や更新されたものに依存するportsのチェック漏れや
# 一緒にコミットしなければいけない新規portsのコミット忘れでちょくちょく
# 壊れてます。 なんだかんだ言って、cpersiva@や私が炭坑のカナリアに
# なって騒いで直してもらったりするケースが多い気が。 何故かports
# ツリーを更新したタイミングのちょっと前に壊されていることが多いような
# 気がします。 運が悪いのでしょうか...

-- 
青木 知明  [Tomoaki AOKI]



Re: mount -t smbfs の挙動

2023-09-23 Thread ISHII
広島の石井です。

青木さん調査していただいてありがとうございます。

On Sun, 24 Sep 2023 10:13:30 +0900
20230924101330.0cc2564b952d6f0936352...@dec.sakura.ne.jp : Tomoaki AOKI
 wrote:

> 青木@名古屋です。 時間が空いて申し訳ありません。
> 
> このあたり、/etc/以下に置かれるものの関係はあちこちにバラけがちで
> 探し難いのですが、
> 
> https://cgit.freebsd.org/src/blame/contrib/smbfs/examples/dot.nsmbrc
> →たぶんこれを基に構築されているので/etc/nsmb.confのコメントと一致
>  しています。 該当のcharsetsの行はcommit 34ffbc80d694で更新されて
>  いて、当該commitを見ると
> 
> https://cgit.freebsd.org/src/commit/contrib/smbfs/examples/dot.nsmbrc?id=34ffbc80d69446c64599a878a0a950c9e66f7bf5
> →diffを見ると、変更前がman nsmb.confと同じになっています。
> 
> 従って、man pageの方がこの変更に追従できていません。
> コメントの方を信用されるのが吉と思います。

そのようにします。
が、man page 10年以上放置されているとは

ISHII 



Re: mount -t smbfs の挙動

2023-09-23 Thread Tomoaki AOKI
On Thu, 10 Aug 2023 22:34:06 +0900
ISHII  wrote:

> 広島の石井です。
> 
> On Thu, 10 Aug 2023 20:13:21 +0900
> dcdc6d8d-3b11-442e-a4e5-b619fce6e...@gmail.com : 内藤祐一郎
>  wrote:
> 
> > ja_JP.UTF-8 に統一すれば良いと思います。
> 
> 何度もお手数をおかけしてケアレスミスを見つけていただき感謝します。
> 今後一層精進します。
> これで、/etc/fstab に記載した記述が正しく働いている理由もわかりました。
> 
> ところで、青木 知明さんの、
> 
> On Thu, 10 Aug 2023 18:46:56 +0900
> 20230810184656.fbebd1cbbcb7e072c875f...@dec.sakura.ne.jp : Tomoaki AOKI
>  wrote:
> 
> > 古い記憶ですが、mount_smbfsで-Eオプションでcharset変換の
> > 指定をしても上手くいかず、/root/.nsmbrcで指定したら機能した
> > ため、以降、ずっとそのように運用しています。
> 
> この投稿で少し疑問だったことを思い出しました。
>  /etc/nsmb.conf のことなんですが、man nsmb.conf には、
>  Keyword  SectionComment
> A B C D
>  addr   - + - -IP address of SMB server
>  charsets  - + + +local:remote charset pair
>  nbns  + + - -address of NetBIOS name server (WINS)
>  nbscope  + + - -NetBIOS scope
>  nbtimeout+ + - -timeout for NetBIOS name servers
>  password - - + +plain text or simple encrypted password
>     used to access the given share
>  retry_count  + + - -number of retries before connection is
>  marked as broken
>  timeout   + + - -SMB request timeout
>  workgroup+ + + +workgroup name
> 
> と書かれていて、/etc/nsmb.conf には、コメントとして、
> # keyword/section   A  B  C  D  Comment
> #
> # addr-  +  -  -  IP address of SMB server
> # charsets   +  +  +  +  local:remote charset pair
> # nbns   +  +  -  -  address of NetBIOS name server (WINS)
> # nbscope   +  +  -  -  NetBIOS scope
> # nbtimeout +  +  -  -  timeout for NetBIOS name servers
> # password  -  -  +  +  a plain text password used to access 
> to the givenshare
> # retry_count   +  +  -  -  number of retries before connection 
> marked as broken
> # timeout+  +  -  -  SMB request timeout
> # workgroup +  +  +  +  name of workgroup
> 
> と書かれています。どちらが正しいと思います?
> 私は、/etc/nsmb.conf のコメントが正しいと思います。小さいことですが・・・
> 
> ISHII 

青木@名古屋です。 時間が空いて申し訳ありません。

このあたり、/etc/以下に置かれるものの関係はあちこちにバラけがちで
探し難いのですが、

https://cgit.freebsd.org/src/blame/contrib/smbfs/examples/dot.nsmbrc
→たぶんこれを基に構築されているので/etc/nsmb.confのコメントと一致
 しています。 該当のcharsetsの行はcommit 34ffbc80d694で更新されて
 いて、当該commitを見ると

https://cgit.freebsd.org/src/commit/contrib/smbfs/examples/dot.nsmbrc?id=34ffbc80d69446c64599a878a0a950c9e66f7bf5
→diffを見ると、変更前がman nsmb.confと同じになっています。

従って、man pageの方がこの変更に追従できていません。
コメントの方を信用されるのが吉と思います。

-- 
Tomoaki AOKI



Re: mount -t smbfs の挙動

2023-08-10 Thread ISHII
広島の石井です。

On Thu, 10 Aug 2023 20:13:21 +0900
dcdc6d8d-3b11-442e-a4e5-b619fce6e...@gmail.com : 内藤祐一郎
 wrote:

> ja_JP.UTF-8 に統一すれば良いと思います。

何度もお手数をおかけしてケアレスミスを見つけていただき感謝します。
今後一層精進します。
これで、/etc/fstab に記載した記述が正しく働いている理由もわかりました。

ところで、青木 知明さんの、

On Thu, 10 Aug 2023 18:46:56 +0900
20230810184656.fbebd1cbbcb7e072c875f...@dec.sakura.ne.jp : Tomoaki AOKI
 wrote:

> 古い記憶ですが、mount_smbfsで-Eオプションでcharset変換の
> 指定をしても上手くいかず、/root/.nsmbrcで指定したら機能した
> ため、以降、ずっとそのように運用しています。

この投稿で少し疑問だったことを思い出しました。
 /etc/nsmb.conf のことなんですが、man nsmb.conf には、
 Keyword  SectionComment
    A B C D
 addr   - + - -IP address of SMB server
 charsets  - + + +local:remote charset pair
 nbns  + + - -address of NetBIOS name server (WINS)
 nbscope  + + - -NetBIOS scope
 nbtimeout+ + - -timeout for NetBIOS name servers
 password - - + +plain text or simple encrypted password
    used to access the given share
 retry_count  + + - -number of retries before connection is
 marked as broken
 timeout   + + - -SMB request timeout
 workgroup+ + + +workgroup name

と書かれていて、/etc/nsmb.conf には、コメントとして、
# keyword/section   A  B  C  D  Comment
#
# addr-  +  -  -  IP address of SMB server
# charsets   +  +  +  +  local:remote charset pair
# nbns   +  +  -  -  address of NetBIOS name server (WINS)
# nbscope   +  +  -  -  NetBIOS scope
# nbtimeout +  +  -  -  timeout for NetBIOS name servers
# password  -  -  +  +  a plain text password used to access to 
the givenshare
# retry_count   +  +  -  -  number of retries before connection 
marked as broken
# timeout+  +  -  -  SMB request timeout
# workgroup +  +  +  +  name of workgroup

と書かれています。どちらが正しいと思います?
私は、/etc/nsmb.conf のコメントが正しいと思います。小さいことですが・・・

ISHII 



Re: mount -t smbfs の挙動

2023-08-10 Thread 内藤祐一郎
内藤です。

> 2023/08/10 19:00、ISHII のメール:
> 
> お返事ありがとうございます、広島の石井です。
> 
> On Thu, 10 Aug 2023 16:35:38 +0900
> 1e529798-5dfd-44cf-9f26-9886b0d20...@gmail.com : 内藤祐一郎
>  wrote:
> 
>> 一応念のために確認なのですけれども、LC_ALL には何が入っていますか?
>> できれば、locale の結果を全て見せていただけると助かります。
> 
> 下記のように LC_ALL には何も入っていません。
> 
> LANG=ja-JP.UTF-8
> LC_CTYPE="C"
> LC_COLLATE="C"
> LC_TIME="C"
> LC_NUMERIC="C"
> LC_MONETARY="C"
> LC_MESSAGES="C"
> LC_ALL=

ああ、なるほど。locale の結果に “C” となっているのは、
環境変数で設定されておらず、自動的に設定された値であることを
表しています。けれども、この場合 LANG が設定されているので、
その値が使用されるはずですが、ja の次にハイフンが入っていますので、
正しい値とは解釈されず、デフォルトの “C" が設定されています。

> 一般ユーザーでは、
> 
> LANG=ja_JP.UTF-8
> LC_CTYPE="ja_JP.UTF-8"
> LC_COLLATE="ja_JP.UTF-8"
> LC_TIME="ja_JP.UTF-8"
> LC_NUMERIC="ja_JP.UTF-8"
> LC_MONETARY="ja_JP.UTF-8"
> LC_MESSAGES="ja_JP.UTF-8"
> LC_ALL=

一方こちらは ja の後がアンダースコアのため、正しい値として解釈されています。

ja_JP.UTF-8 に統一すれば良いと思います。

-- 
内藤 祐一郎
naito.yuich...@gmail.com





Re: mount -t smbfs の挙動

2023-08-10 Thread ISHII
お返事ありがとうございます、広島の石井です。

On Thu, 10 Aug 2023 16:35:38 +0900
1e529798-5dfd-44cf-9f26-9886b0d20...@gmail.com : 内藤祐一郎
 wrote:

> 一応念のために確認なのですけれども、LC_ALL には何が入っていますか?
> できれば、locale の結果を全て見せていただけると助かります。

下記のように LC_ALL には何も入っていません。

LANG=ja-JP.UTF-8
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=

一般ユーザーでは、

LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_ALL=

です。

ISHII 



Re: mount -t smbfs の挙動

2023-08-10 Thread Tomoaki AOKI
On Thu, 10 Aug 2023 16:35:38 +0900
内藤祐一郎  wrote:

> 内藤です。
> 
> > 2023/08/10 16:21、ISHII のメール:
> > 
> > お返事ありがとうございます、広島の石井です。
> > 
> > On Thu, 10 Aug 2023 12:51:32 +0900
> > caf94649-104d-49b4-92f1-4b3929cf9...@gmail.com : 内藤祐一郎
> >  wrote:
> > 
> >>> mount_smbfs: can't set locale ''
> >>> mount_smbfs: smb_lib_init: can't initialise local
> >>> となり、マウントできません。
> >> 
> >> このエラーになっている時の locale は何が設定されていますか?
> > 
> > LANG=ja-JP.UTF-8
> > LC_CTYPE="C"
> 
> 一応念のために確認なのですけれども、LC_ALL には何が入っていますか?
> できれば、locale の結果を全て見せていただけると助かります。
> 
> > です。root には、su や su - でなっていますが、どちらも同じですね。ちなみに一般ユーザーでは、
> > 
> > LANG=ja_JP.UTF-8
> > LC_CTYPE="ja_JP.UTF-8"
> 
> こちらも同様に LC_ALL には何が入っていますか?
> 
> > です。LC_CTYPE="C" では駄目ということですか・・・。
> 
> まだ何とも分かりません。
> 
> -- 
> 内藤 祐一郎
> naito.yuich...@gmail.com

古い記憶ですが、mount_smbfsで-Eオプションでcharset変換の
指定をしても上手くいかず、/root/.nsmbrcで指定したら機能した
ため、以降、ずっとそのように運用しています。
(雛形は/usr/share/examples/smbfs/dot.nsmbrcです。)

古いI・O DATAのNASで手元側が*.UTF-8だとリモート側をCP932に
する必要があった以外、それよりは新しい(といっても古く、
既に稼働しませんが)同社製NASではUTF-8:UTF-8、Synology製
NASでも同様の設定で動作しています。 rootのlocaleは
LC_ALL=Cのみで、あとはLANG=en_US.UTF-8くらいです。

mountはrootで行っている(一般ユーザからsuduでは行って
いない)ので詳細は省きますが、root以外はLANG=ja_JP.UTF-8と
しています。

また、私の場合、smbfsのためのエントリも/etc/fstabに定義
しています(noautですが)。

mount時点では関係しませんが、日本語ファイル名がある場合、
Bug90815 [1] の最新又はその1つ前の別バージョンのパッチが適用
されていないとcharset変換でハングアップしてしまいます。

一番古いパッチはComment1で正しいという意見が付いているものの
既に適用できず、2つ目はそれを適用可能に(srcの変更に追従して)
修正しただけのもの、最後のものはComment5で提示された対案を
きちんと当たるように微修正したものです。


[1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=90815

-- 
青木 知明  [Tomoaki AOKI]



Re: mount -t smbfs の挙動

2023-08-10 Thread 内藤祐一郎
内藤です。

> 2023/08/10 16:21、ISHII のメール:
> 
> お返事ありがとうございます、広島の石井です。
> 
> On Thu, 10 Aug 2023 12:51:32 +0900
> caf94649-104d-49b4-92f1-4b3929cf9...@gmail.com : 内藤祐一郎
>  wrote:
> 
>>> mount_smbfs: can't set locale ''
>>> mount_smbfs: smb_lib_init: can't initialise local
>>> となり、マウントできません。
>> 
>> このエラーになっている時の locale は何が設定されていますか?
> 
> LANG=ja-JP.UTF-8
> LC_CTYPE="C"

一応念のために確認なのですけれども、LC_ALL には何が入っていますか?
できれば、locale の結果を全て見せていただけると助かります。

> です。root には、su や su - でなっていますが、どちらも同じですね。ちなみに一般ユーザーでは、
> 
> LANG=ja_JP.UTF-8
> LC_CTYPE="ja_JP.UTF-8"

こちらも同様に LC_ALL には何が入っていますか?

> です。LC_CTYPE="C" では駄目ということですか・・・。

まだ何とも分かりません。

-- 
内藤 祐一郎
naito.yuich...@gmail.com





Re: mount -t smbfs の挙動

2023-08-10 Thread ISHII
お返事ありがとうございます、広島の石井です。

On Thu, 10 Aug 2023 12:51:32 +0900
caf94649-104d-49b4-92f1-4b3929cf9...@gmail.com : 内藤祐一郎
 wrote:

> > mount_smbfs: can't set locale ''
> > mount_smbfs: smb_lib_init: can't initialise local
> > となり、マウントできません。
> 
> このエラーになっている時の locale は何が設定されていますか?

LANG=ja-JP.UTF-8
LC_CTYPE="C"

です。root には、su や su - でなっていますが、どちらも同じですね。ちなみに一般ユーザーでは、

LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"

です。LC_CTYPE="C" では駄目ということですか・・・。

https://forums.freebsd.org/threads/freebsd-8-mount_smbf-problem-utf-8.9078/
では、utf-8 に非対応と云う結論になってましたけど・・・。古い話なんで。

ISHII 



Re: mount -t smbfs の挙動

2023-08-09 Thread 内藤祐一郎
内藤です。

> 2023/08/10 11:58、ISHII のメール:
> 
> こんにちは、広島の石井と申します。
> 
> 先程の投稿で環境を書くのを忘れていました。
> FreeBSD 13.2-RELEASE-p2 GENERIC amd64
> です。
> 
> 最近気づいたのですが Linux NAS をマウントするのに man mount_smbfs の使用例のように root で、
> 
> # mount_smbfs -I 192.168.20.3 -E koi8-r:cp866 //guest@samba/tmp /smb/tmp
> 
> とすると、(もちろん -I 以降は私の環境に合わせています)
> mount_smbfs: can't set locale ''
> mount_smbfs: smb_lib_init: can't initialise local
> となり、マウントできません。

このエラーになっている時の locale は何が設定されていますか?
エラーが発生している状態で locale(1) を引数なしで実行すると表示されます。

おそらく下の sudo 時とは異なる locale だと思いますので、
どのようにして root ユーザになったのかに依存して変わると思います。

mount_smbfs は最初に LC_CTYPE を “” で初期化しますが、
そこでエラーになっているようです。

> # mount -t smbfs -I 192.168.20.3 -E koi8-r:cp866 //guest@samba/tmp /smb/tmp
> 
> に至っては
> usage: mount [-adflpruvw] [-F fstab] [-o options] [-t ufs | external_type]
>   mount [-dfpruvw] special | node
>   mount [-dfpruvw] [-o options] [-t ufs | external_type] special node
> と返ってきます。
> 
> 私の理解では、mount -t hoge は mount_hoge へのリンクだと思っていました。
> どなたか事情をご存知でしょうか。

smbfs だけが特殊で、FreeBSD プロジェクトの外部で開発されたものを
同梱しているからだと思います。mount -t の認識するファイルシステムタイプに
含まれていません。

> また、ユーザーで、
> sudo mount_smbfs -I 192.168.20.3 -E koi8-r:cp866 //guest@samba/tmp /smb/tmp
> とすれば何事もなくマウントできます。

おそらく、前述のエラーになっている時と locale が異なるからだと思います。
一般ユーザの locale が引き継がれていて、そちらは正常なのでしょう。

-- 
内藤 祐一郎
naito.yuich...@gmail.com