サーバーをより強力なサーバーに変更するときが来ました(新しいタスクが登場しました)。 設定時に、異なるクライアントを新しいバージョンのSambaに接続する際に問題が発生しました。
サーバーサンバ
古いサーバーと新しいサーバーはどちらも、バイナリパッケージを備えたGNU / Linuxディストリビューションを使用します。これにより、インストールと定期的なソフトウェアアップデートが容易になります。
ファイルサーバーへのアクセス制御は必要ないため、ゲストログインが使用され、sambaユーザーデータベースは空です。
古いサーバー上のsmb.confの主要パラメーター(smbdバージョン3.2.5):
[global] security = share dos charset = CP866 guest account = smbguest invalid users = root [files] path = /srv/files comment = Files browseable = yes writable = yes public = yes guest only = yes
新しいサーバーでは、Sambaはすでに4番目のバージョンであり、かなりの数の変更があります。 説明されている構成で最も重要なもの:
- セキュリティなし=デフォルトビルドの共有モード
/etc/samba/smb.confを新しいサーバーにコピーし、security = share(デフォルトではsecurity = userを使用)をコメントアウトして、nmbdとsmbdを実行しました。
Linuxクライアント
/ etc / fstabにある古いサーバーのファイルリソースへの接続:
//srv/files /srv/files cifs rw,guest,ip=192.0.2.2,uid=1001,gid=users
新しいサーバーのファイルリソースを同じオプションで接続しようとすると、エラーが発生します。
# mount -t cifs -o rw,ip=192.0.2.17,uid=1001,gid=users,guest //host-17/files /srv/host17files mount: block device //host-17/files is write-protected, mounting read-only mount: cannot mount block device //host-17/files read-only
正しいパラメーターを見つけることができませんでした。グーグルで検索する必要がありました。
/ sbin / mountでコンパイルされたcifsサポートは新しいバージョンのsambaをサポートしないため、/ sbin / mount.cifsを使用する必要があることが判明しました(デフォルトではインストールされません)。 インストールされたUbuntuおよびAltlinuxディストリビューションの場合、このファイルはcifs-utilsパッケージに含まれています(それぞれプログラムバージョン6.0および5.7)。 パッケージのインストール後、エラーなしでマウントが開始されました。
Windowsクライアント
古いサーバーに接続すると、匿名ログインが機能しました。
新しいサーバーに接続しようとすると、ログインパスワードリクエストを受け取ります。
この動作の理由は、Windowsが最初にWindowsユーザー資格情報でサーバーにログインしようとし、失敗した場合に同時にゲストログインを使用するためです。同時に、セキュリティ=ユーザーモードのsambaでゲスト入力には切り替わりません(「ゲストへのマッピング=なし」パラメーターがこれを担当します。これはデフォルト値です)。
解決方法は簡単です。グローバルsmb.confセクションで「guest to map = Bad User」を指定する必要があります。
説明されている構成とは異なる構成では、パスワードが使用され、ログインが既存のsambaユーザーデータベースと一致する場合、そのようなパラメーター値は接続エラーを引き起こす可能性があります。 この場合、パラメーターには他のオプションがあります。または、ユーザー名が一致しないようにアドバイスを使用できます。