2016年1月10日日曜日

CentOS7でsambaの挙動が急に変わった

sambaを4.2.3-10.el7から4.2.3-11.el7_2に更新したら急にWindowsからアクセスできない共有ディレクトリが発生しました。

何事かと思ったけど、単純にシンボリックリンクが共有外に張られているとエラーとなって・・・

えええ??いまさら???

この機能そのものはsambaに実装されてから古いですよね。
わざとRHELの方針で殺してあるものとばかり思っていましたが・・・????
たまげたなあ。

ちゃんとした公開ポリシーに基づいた共有ディレクトリの設定が適切に行われていれば、当然こんなことは起きないのですが、開発環境はWindows上にあるけど実行環境は仮想マシン内のLinuxにあるというようなときには面倒なのでsambaでドーンと公開しちゃうようなズボラをやったりすると、こういう目にあいます。自業自得ですね。

今回は、たまたまサーバのOSにCentOS7を採用したこともあり、少しでも経験値を高めようと、とあるプログラムのデバッグ環境にもCentOS7を使用し、一通りのデバッグも済んだのでyum check-updateをかけてみるとkernelの更新が来ていたので、そいつでもテストしようと思って一括updateをかけたらその中にsambaの更新も含まれていたのでした。

対応方法は、まあ、CentOS以外では一般的な話なので流しますが、[global]で拡張を有効にするか連携を無効にし、かつ、共有ディレクトリ外にシンボリックリンクが張られている共有ディレクトリの定義(ここでは共有名shareとします)に、共有ディレクトリ外へたどれるように設定します。

具体的には以下を追記します。

[global]
unix extensions = no
または、unix extensionsをyesのままにしたいのであれば、下記を設定します。
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

この設定で安易に実運用しちゃったりするととても寂しい思いをすることになる日が来るかもしれませんからご留意ください。

それにしても、なぜ今なんだろう。

方針転換かパッケージャのミスか・・・ま、当然公開を意図した場所以外へのシンボリックリンクがあること自体がダメというか管理上好ましくないので、改善には違いありません。

0 件のコメント:

コメントを投稿