linux:samba:trouble-shooting

トラブルシューティング

Samba SymLink Access Error 001
TODO: 工事中…😅💦

以下のエラーが発生する場合

ERROR(<class 'samba.provision.ProvisioningError'>):
Provision failed - ProvisioningError: guess_names:
'realm =' was not specified in supplied /etc/samba/smb.conf.
Please remove the smb.conf file and let provision generate it

smb.confを退避、または、削除する。

$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.org

または

$ sudo rm /etc/samba/smb.conf

以下のエラーが発生する場合

ERROR(ldb): uncaught exception - 0000052D: Constraint violation - check_password_restrictions:
the password does not meet the complexity criteria!

または

ERROR(ldb): uncaught exception - 0000052D: Constraint violation - check_password_restrictions:
the password is too short. It should be equal or longer than 7 characters!

Administrator password: で7文字以上、英数字記号を含むパスワードを入力する。

以下のエラーが発生する場合

ERROR(<type 'exceptions.OSError'>): uncaught exception - [Errno 2] No such file or directory
...
  File "/usr/lib64/python2.7/site-packages/samba/tdb_util.py", line 36, in tdb_copy
    status = subprocess.call(tdbbackup_cmd, close_fds=True, shell=False)
...

tdb-toolsをインストールする。

$ sudo yum install tdb-tools

/var/log/messages に以下のエラーログが記録される。

smbd[1136]: [2013/10/13 12:36:43.739171,  0] ../source3/printing/print_cups.c:151(cups_connect)
smbd[1136]:   Unable to connect to CUPS server localhost:631 - 通信端点が接続されていません
smbd[1113]: [2013/10/13 12:36:43.740111,  0] ../source3/printing/print_cups.c:528(cups_async_callback)
smbd[1113]:   failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

コンパイル時にCUPSを有効にしていると必ずCUPSサーバーに接続に行くためエラーが発生する。
このエラーを防ぐにはsmb.confにprinting = bsdの設定を追加する。

$ sudo vi /etc/samba/smb.conf
[global]
    printing = bsd

以下の環境ではドメインに参加しているクライアントからのDNSの更新に失敗し動作しなかった。
OS: Fedora 19
DNS: bind-9.9.3-5.P2
Samba: samba-4.1.0 (BIND9_DLZで構成)

サーバー側でログを表示しつつ

$ sudo journalctl -f


クライアントマシンで以下のコマンドを実行。

>ipconfig /registerdns

Windows IP 構成

このコンピューターのすべてのアダプターに対する DNS リソース レコードの登録を開始しました。
すべてのエラーは、イベント ビューアーに 15 分以内に報告されます。


サーバーのログに以下のエラーが記録される。

named[1043]: samba_dlz: starting transaction on zone monsters-g.local
named[1043]: client 172.16.77.81#64872: update 'monsters-g.local/IN' denied
named[1043]: samba_dlz: cancelling transaction on zone monsters-g.local
named[1043]: samba_dlz: starting transaction on zone monsters-g.local
named[1043]: client 172.16.77.81#61611: update 'monsters-g.local/IN' denied
named[1043]: samba_dlz: cancelling transaction on zone monsters-g.local


原因がつかめないためSambaの内蔵DNSで構成することにした。

Windowsクライアントをドメインに参加させて、「XXXXドメインへようこそ」のダイアログボックスが表示されたあとにRPCエラーが発生する。
エラーが発生してもドメイン参加は完了している。

DC(ドメインコントローラ)のファイヤーウォール設定が不十分であることが考えられる。

DCのコンピュータ上でファイヤーウォールをすべて許可するように変更して試してみる。

$ sudo firewall-cmd --set-default-zone=trusted 

上記の「Windowsクライアントをドメイン参加させる際にRPCエラーが発生する」と同じ原因と思われる。

DCのコンピュータ上でファイヤーウォールをすべて許可するように変更して試してみる。

$ sudo firewall-cmd --set-default-zone=trusted 

サービスを起動すると…

$ sudo systemctl start samba.service

プロセスが直ぐに終了してしまう。

systemd[1]: Started Samba Active Directory Domain Controller Daemon.
samba[1490]: [2013/10/16 21:57:10.925033,  0] ../source4/smbd/server.c:492(binary_smbd_main)
samba[1490]: samba: using 'standard' process model
smbd[1497]: [2013/10/16 21:57:11.065425,  0] ../source3/profile/profile.c:155(profile_setup)
smbd[1497]: Can't attach to IPC area. Error was 許可がありません
smbd[1497]: [2013/10/16 21:57:11.067577,  0] ../source3/smbd/server.c:1263(main)
smbd[1497]: ERROR: failed to setup profiling
samba[1491]: [2013/10/16 21:57:11.075891,  0] ../file_server/file_server.c:48(file_server_smbd_done)
samba[1491]: file_server smbd daemon exited normally
samba[1491]: [2013/10/16 21:57:11.076921,  0] ../source4/smbd/service_task.c:35(task_server_terminate)
samba[1491]: task_server_terminate: [smbd child process exited]
samba[1490]: [2013/10/16 21:57:11.078755,  0] ../source4/smbd/server.c:211(samba_terminate)
samba[1490]: samba_terminate: smbd child process exited
systemd[1]: samba.service: main process exited, code=exited, status=1/FAILURE
samba[1499]: [2013/10/16 21:57:11.203547,  0] ../source4/smbd/server.c:121(sig_term)
samba[1499]: Exiting pid 1499 on SIGTERM

でも、シングルモードでは動作する。

$ sudo samba -i -M single --debuglevel=3
lpcfg_load: refreshing parameters from /etc/samba/smb.conf
params.c:pm_process() - Processing configuration file "/etc/samba/smb.conf"
samba version 4.1.0 started.
Copyright Andrew Tridgell and the Samba Team 1992-2013
GENSEC backend 'gssapi_spnego' registered
GENSEC backend 'gssapi_krb5' registered
GENSEC backend 'gssapi_krb5_sasl' registered
GENSEC backend 'sasl-DIGEST-MD5' registered
GENSEC backend 'schannel' registered
GENSEC backend 'spnego' registered
GENSEC backend 'ntlmssp' registered
GENSEC backend 'krb5' registered
GENSEC backend 'fake_gssapi_krb5' registered
NTPTR backend 'simple_ldb'
...

SELinuxを確認してみると…

$ getenforce
Enforcing

SELinuxを有効化していると問題が複雑化するので無効にする。無効にするとこの問題も解決する。
詳細はSELinuxを参照のこと。
反映には再起動が必要。

$ sudo vi /etc/selinux/config
SELINUX=disabled

一時的に無効化。

$ sudo setenforce 0

hostコマンドで確認してもAレコードが登録されていない。

$ host -t A blue-nas.fireball.local
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached

冗長化のために複製したDCのsmb.confにdns forwarderを追記する。

$ sudo vi /etc/samba/smb.conf
[global]
        ...
        dns forwarder = 192.168.1.10 <- 最初に構築したDCのIPアドレスを追記
        idmap_ldb:use rfc2307 = yes

Sambaを再起動する。

$ sudo systemctl restart samba.service

hostコマンドで確認する。

$ host -t A blue-dc2.fireball.local
blue-dc2.fireball.local has address 192.168.1.11
  • linux/samba/trouble-shooting.txt
  • 最終更新: 2024/02/04 17:05
  • by 非ログインユーザー