isLandcenter 非番中

ブログトップ | ログイン

/var の容量不足で samba にログインできなくなった件 openSUSE Leap 15.2

/var の容量不足で samba にログインできなくなった件 openSUSE Leap 15.2

ある日、 openSUSE Leap 15.2 の samba サーバーにログインできなくなりました。

-- 現象

1. Windows Explorer のアドレスバーから

\\server_IP\share

に接続しようとすると「サーバーが見つからない」。なぜかこの時、MacOS のファインダーからは接続できた。

2.接続できて共有ディレクトリが見えても、クリックして認証画面から、ユーザ名/パスワードを設定しても認証できない。

-- 対策

1./var パーティションを

# df -h /var

してみると used が 100% だったので、不要なファイルを消した。

※ そう言えば、数日前に KVM で色々やっていました。これがディスク容量不足の原因か....

2.それでも一部のコンピューターからログインできないので、/etc/samba/smb.conf ntlm auth = yes を付け加えたら、認証された。

-- 詳細

1./var パーティションの容量が足りないと、認証用の制御ファイルの作成に失敗して認証できなくなるらしい。openSUSE Leap の samba の TDB ファイルは /var/lib/samba に作成されます。

smb.conf — Samba の設定ファイル

Chapter 1. SAMBAのインストールとテスト方法

opensuse152:~ # smbd -V
Version 4.11.14-git.247.8c858f7ee14lp152.3.19.1-SUSE-oS15.0-x86_64

opnsuse152:~ # smbd -b | grep LOCKDIR
LOCKDIR: /var/lib/samba/lock
opensuse152:~ # ls -l /var/lib/samba/
total 2792
drwxr-xr-x  4 root root       4096 Dec 26 18:41 DriverStore
-rw------- 1 root root 16384 Nov 12 2016 account_policy.tdb
-rw-r--r-- 1 root root 421 May 29 22:49 browse.dat
drwxrwxr-x 10 root ntadmin 4096 May 28 11:59 drivers
-rw-r--r-- 1 root root 40960 Dec 24 23:23 gencache.tdb
-rw------- 1 root root 696 Nov 12 2016 group_mapping.tdb
drwxr-xr-x 3 root root 4096 Apr 30 01:14 lock
-rw------- 1 root root 12288 Dec 26 15:54 messages.tdb
drwxr-xr-x 2 root root 4096 Apr 30 01:14 netlogon
-rw-r--r-- 1 root root 696 Dec 18 19:28 notify.tdb
-rw-r--r-- 1 root root 696 Dec 18 19:28 notify_onelevel.tdb
drwxr-xr-x 2 root root 4096 Nov 12 2016 printing
drwxr-xr-x 3 root root 4096 Apr 30 01:14 private
drwxrwx--- 2 root users 4096 Apr 30 01:14 profiles
-rw------- 1 root root 2494464 Dec 26 18:41 registry.tdb
-rw-r--r-- 1 root root 204800 Dec 20 21:28 sessionid.tdb
-rw------- 1 root root 16384 Nov 12 2016 share_info.tdb
srwxrwxrwx 1 root root 0 Dec 18 19:58 unexpected
drwxrwx--T 2 root users 4096 Nov 12 2016 usershares
drwxr-x--- 2 root 113 4096 May 1 2015 winbindd_privileged
-rw-r--r-- 1 root root 220 May 29 22:49 wins.dat
-rw------- 1 root root 8192 May 29 22:45 wins.tdb


再起動した時の状態は次の様になりました。smb service は running していますが、何かエラーが出ています。

opnsuse152:~ # systemctl restart smb
opnsuse152:~ # systemctl status smb
● smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2021-05-28 09:21:47 JST; 11s ago
Process: 3016 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS)
Main PID: 3020 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 4
CGroup: /system.slice/smb.service
├─3020 /usr/sbin/smbd --foreground --no-process-group
├─3022 /usr/sbin/smbd --foreground --no-process-group
├─3023 /usr/sbin/smbd --foreground --no-process-group
└─3024 /usr/sbin/smbd --foreground --no-process-group

May 28 09:21:57 opnsuse152 smbd[3099]: [2021/05/28 09:21:57.403268, 0] ../../source3/smbd/pipes.c:44(open_np_file)
May 28 09:21:57 opnsuse152 smbd[3099]: file_new failed: NT_STATUS_UNSUCCESSFUL
May 28 09:21:57 opnsuse152 smbd[3103]: [2021/05/28 09:21:57.642219, 0] ../../source3/smbd/smbXsrv_open.c:898(smbXsrv_open_create)
May 28 09:21:57 opnsuse152 smbd[3103]: smbXsrv_open_create: global_id (0x472d4334) store failed - NT_STATUS_UNSUCCESSFUL
May 28 09:21:57 opnsuse152 smbd[3103]: [2021/05/28 09:21:57.642436, 0] ../../source3/smbd/smbXsrv_open.c:1146(smbXsrv_open_close)
May 28 09:21:57 opnsuse152 smbd[3103]: smbXsrv_open_close(0x472d4334): failed to delete global key '472D4334': NT_STATUS_NOT_FOUND
May 28 09:21:57 opnsuse152 smbd[3103]: [2021/05/28 09:21:57.642547, 0] ../../source3/smbd/smbXsrv_open.c:800(smbXsrv_open_destructor)
May 28 09:21:57 opnsuse152 smbd[3103]: smbXsrv_open_destructor: smbXsrv_open_close() failed - NT_STATUS_NOT_FOUND
May 28 09:21:57 opnsuse152 smbd[3103]: [2021/05/28 09:21:57.642639, 0] ../../source3/smbd/pipes.c:44(open_np_file)
May 28 09:21:57 opnsuse152 smbd[3103]: file_new failed: NT_STATUS_UNSUCCESSFUL
opnsuse152:~ #

それでも、古い Windows7 の認証が通らないので NTLMv1 認証を有効にしたら、認証が通りました。(どこも弄っていないんですけどね)

これで一応解決できましたが、NTLMv1 はセキュリティ上あまりお勧めできないので、一時的な対策です。

ntlm auth

SUSE Linux(openSUSE Leap/SLE) の場合、YaST > Samba Server より Identity タブから "Advanced Settings" より、グローバル設定を追加、変更できます。openSUSE/SLES では直接設定ファイルを修正する必要はないので便利です。SUSE + YaSTってスゴイ。

/var の容量不足で samba にログインできなくなった件 openSUSE Leap 15.2_a0056607_15255551.png

Expert Global Settings より Add して、ドロップダウンリストから ntlm auth を追加してチェックを付けます。openSUSE Leap/SLES の YaST で smb.conf は書き換えられ、そのまま YaST Samba Server を終了させると、自動的に Samba は再起動されます。(Start Up Settings の内容によります)

/var の容量不足で samba にログインできなくなった件 openSUSE Leap 15.2_a0056607_15263820.png

opnsuse152:~ # cat /etc/samba/smb.conf | grep auth
ntlm auth = Yes
opnsuse152:~ #

YaST の Service Manager から smbd の systemctl のステータスをチェックします。(systemctl status smb)

/var の容量不足で samba にログインできなくなった件 openSUSE Leap 15.2_a0056607_15512731.png

NTLM の有効化は、とりあえずの一時しのぎです。









by islandcenter | 2021-05-29 15:35 | SUSE | Comments(0)