Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
A.2. SSSD および sudo Debugging Logs を使用した sudo のトラブルシューティング
A.2.1. SSSD および sudo デバッグロギング
デバッグロギング機能により、SSSD および sudo に関する追加情報を記録できます。
sudo デバッグログファイル
sudo デバッグを有効にするには、以下の手順に従います。
- 以下の行を
/etc/sudo.conf
に追加します。Debug sudo /var/log/sudo_debug.log all@debug Debug sudoers.so /var/log/sudo_debug.log all@debug
- デバッグするユーザーとして sudo コマンドを実行します。
/var/log/sudo_debug.log
ファイルが自動的に作成され、以下のような質問に答える詳細な情報を提供します。
- sudo コマンドの実行時にユーザーと環境についてどのような情報がありますか。
sudo[22259] settings: debug_flags=all@debug sudo[22259] settings: run_shell=true sudo[22259] settings: progname=sudo sudo[22259] settings: network_addrs=192.0.2.1/255.255.255.0 fe80::250:56ff:feb9:7d6/ffff:ffff:ffff:ffff:: sudo[22259] user_info: user=user_name sudo[22259] user_info: pid=22259 sudo[22259] user_info: ppid=22172 sudo[22259] user_info: pgid=22259 sudo[22259] user_info: tcpgid=22259 sudo[22259] user_info: sid=22172 sudo[22259] user_info: uid=10000 sudo[22259] user_info: euid=0 sudo[22259] user_info: gid=554801393 sudo[22259] user_info: egid=554801393 sudo[22259] user_info: groups=498,6004,6005,7001,106501,554800513,554801107,554801108,554801393,554801503,554802131,554802244,554807670 sudo[22259] user_info: cwd=/ sudo[22259] user_info: tty=/dev/pts/1 sudo[22259] user_info: host=client sudo[22259] user_info: lines=31 sudo[22259] user_info: cols=237
- sudo ルールの取得に使用されるデータソース。
sudo[22259] <- sudo_parseln @ ./fileops.c:178 := sudoers: files sss
- SSSD プラグインは以下の行で始まります。
sudo[22259] <- sudo_sss_open @ ./sssd.c:305 := 0
- SSSD が返すルールの数
sudo[22259] Received 3 rule(s)
- ルールが一致しているかどうか。
sudo[22259] sssd/ldap sudoHost 'ALL' ... MATCH! sudo[22259] <- user_in_group @ ./pwutil.c:1010 := false
SSSD デバッグログファイル
SSSD デバッグを有効にするには、以下を実行します。
/etc/sssd/sssd.conf
ファイルの[sudo]
および[domain/domain_name]
セクションにdebug_level
オプションを追加します。[domain/domain_name] debug_level = 0x3ff0 ... [sudo] debug_level = 0x3ff0
- SSSD を再起動します。
# systemctl restart sssd
- sudo コマンドを実行して、デバッグ情報をログファイルに書き込みます。
以下のログファイルが作成されます。
- ドメインログファイル:
/var/log/sssd/sssd_domain_name.log
- このログファイルは、以下のような質問に回答するのに役立ちます。
- SSSD が返すルールの数
[sdap_sudo_refresh_load_done] (0x0400): Received 4-rules rules
- SSSD はサーバーからどの sudo ルールをダウンロードしましたか。
[sssd[be[LDAP.PB]]] [sysdb_save_sudorule] (0x0400): Adding sudo rule demo-name
- マッチングルールはキャッシュに保存されますか。
[sdap_sudo_refresh_load_done] (0x0400): Sudoers is successfully stored in cache
- サーバーからルールをダウンロードするために使用されたのはどのフィルターですか。
[sdap_get_generic_ext_step] (0x0400): calling ldap_search_ext with [(&(objectClass=sudoRole)(|(!(sudoHost=*))(sudoHost=ALL)(sudoHost=client.example.com)(sudoHost=client)(sudoHost=192.0.2.1)(sudoHost=192.0.2.0/24)(sudoHost=2620:52:0:224e:21a:4aff:fe23:1394)(sudoHost=2620:52:0:224e::/64)(sudoHost=fe80::21a:4aff:fe23:1394)(sudoHost=fe80::/64)(sudoHost=+*)(|(sudoHost=*\\*)(sudoHost=*?*)(sudoHost=*\2A*)(sudoHost=*[*]*))))][dc=example,dc=com]
このフィルターを使用して、IdM データベースのルールを検索します。# ldapsearch -x -D "cn=Directory Manager" -W -H ldap://server.example.com -b dc=example,dc=com '(&(objectClass=sudoRole)...)'
- sudo レスポンダーログファイル:
/var/log/sssd/sssd_sudo.log
- このログファイルは、以下のような質問に回答するのに役立ちます。
- SSSD が返すルールの数
[sssd[sudo]] [sudosrv_get_sudorules_from_cache] (0x0400): Returning 4-rules rules for [user@idm.example.com]
- SSSD のキャッシュの検索に適用されたフィルター。
[sudosrv_get_sudorules_query_cache] (0x0200): Searching sysdb with [(&(objectClass=sudoRule)(|(sudoUser=ALL)(sudoUser=user)(sudoUser=#10001)(sudoUser=%group-1)(sudoUser=%user)(sudoUser=+*)))]
- SSSD キャッシュから返されるルールを検索するにはどうすればいいですか。以下のフィルターを使用してルールを検索します。
# ldbsearch -H /var/lib/sss/db/cache_domain_name.ldb -b cn=sysdb '(&(objectClass=sudoRule)...)'
注記ldbsearch
ユーティリティーは、ldb-tools パッケージに含まれています。