A.7. strace の変更点
Red Hat Developer Toolset 11.0 には strace 5.13 が同梱されています。
以下の機能は、Red Hat Developer Toolset の以前のリリース以降に追加または変更されています。
動作の変更
変更した
%process
クラスには、プロセスのライフサイクル(作成、実行、および終了)に関連するシステムコールが含まれます。-
新しい呼び出し:
kill
、tkill
、tgkill
、pidfd_send_signal
、およびrt_sigqueueinfo
-
廃止された呼び出し:
arch_prctl
およびunshare
-
新しい呼び出し:
改良
-
新しい
-n
(--syscall-number
)オプションは、システムコール番号を出力します。 -
新しい
--secontext[=full]
オプションは SELinux コンテキストを表示します。 -
ポク挿入インジェクションが実装され、2 つの新規オプションが追加されました(
--inject=SET:poke_enter=
および--inject=SET:poke_exit=
)。 - IBM POWER アーキテクチャーでは、System Call Vectored(SCV)ABI のサポートが追加されました。
-
libdw
- ベースのスタックトレースは、ネイティブでないパーソナリティーに対して有効になります。 - netlink データは、より構造化された方法で出力されます。
-
以下のシステムコールのデコードは、
close_range
,epoll_pwait2
,faccessat2
,landlock_add_rule
,landlock_create_ruleset
,landlock_restrict_self
,mount_setattr
, andprocess_madvise
. -
io_uring_setup
、membarrier
、perf_event_open
、およびpidfd_open
のシステムコールのデコードが強化されました。 -
GPIO_*
およびTEE_*
ioctl
コマンドを実装します。 -
以下の
ioctl
コマンドのデコードが実装されています。 fs_IOC_FS[gs]etXATTR
, fs_IOC_[gs]etFLAGS
, fs_IOC32_[gs]etFLAGS
, lOOP_CONFIGURE
, siOCADDMULTI
, siOCDELMULTI
, sIOCGIFENCAP
,SIOCOUTQNSD
、SIOCSIFENCAP
、SIOCSIFHWBROADCAST
、UBI_IOCRPEB および UBI_IOCSPEB
、V4L2_BUF_TYPE_META_CAP
TURE、V4L2_BUF_TYPE_META_OUTPUT
、 およびVIDIOC_QUERY_EXT_CTRL
。 -
NT_PRSTATUS
およびNT_FPREGSET
regsets のPTRACE_GETREGSET
およびPTRACE_SETREGSET
ptrace
リクエストのデコードが実装されています。 -
Ptrace 要求の
regs
引数のデコードが実装されています。PTRACE_GETREGS
64、PTRACE_GETREGS64
、PTRACE_SETREGS
64、PTRACE_SETREGS64
、PTRACE_SETREGS64、PTRACE_SETFPREGS
、およびPTRACE_SETFPREGS
。 -
IPC_INFO
およびMSG_INFO
msgctl
システムコールのstruct msginfo
引数のデコードが実装されています。 -
MSG_STAT および
MSG_STAT
_ANYmsgctl
システムコールコマンドのstruct msqid_
ds -
IPC_INFO
およびSEM_INFO
semctl
のシステムコールのstruct seminfo
引数が実装されています。 -
IPC_SET
、IPC_STAT
、SEM_STAT
、および SEM_STAT のstruct semid_ds
引数、およびSEM_STAT_ANY
semctl のシステムコールコマンドを実装します。 -
IPC_INFO
shmctl
システムコールコマンドのstruct shminfo
引数の記述が実装されています。 -
SHM_INFO
shmctl
システムコールコマンドのstruct shm_info
引数の記述が実装されています。 -
SHM_STAT および
SHM_STAT
_ANYshmctl
システムコールコマンドのstruct shmid_
ds -
IFLA_BRPORT_*
netlink 属性を Linux 5.12 カーネルに一致するように更新。 -
以下の定数のリストが更新されます。
*_magic ,
aLG_*
, audit_*
, bpf_*
, btRFS_*
, cap_*
, close_RANGE_*
, devCONF_*
, eth_*
,fAN_*
,ifLA_*
,iNET_DIAG_*
,iORING_*
,ipv6_*
,ip_*
,kEXEC_*
,keyCTL_*
,key_*
,kvm_*
,lOOP_*
,mdbA_*
,memBARRIER_CMD_*
,mPOL_*
,ms_*
,mtD_*
, nda_*
,nFT_MSG_*
,nlMSGERR_*
,nt_*
,Pr_*
,ptp_PEROUT_*
,pTRACE_*
,resolve_*
,rtAX_*
,rtA_*
,rtc_*
,rtM_*
,rtNH_*
,rtPROT_*
,sctp_*
,seGV_*
,so_*
,statX_*
,st_*
,sys_*
,tCA_*
,trAP_*
,ufFDIO_*
,UFFD_*
およびV4L2_*
。 -
ioctl
コマンドの一覧は、Linux 5.13 カーネル更新のこのようなリストに一致するように更新されます。 RHEA-2022:4635 アドバイザリーがリリースされると、strace が実際の SELinux コンテキストと、SELinux コンテキストデータベースから抽出した定義が一致しなくなるようになりました。
strace の既存の
--secontext
オプションが、mismatch
パラメーターで拡張されました。このパラメーターを使用すると、不一致の場合にのみ、実際のコンテキストとともに期待されるコンテキストを出力できます。出力は、2 つの感嘆符 (!!
) で区切られます。最初は実際のコンテキスト、次に期待されるコンテキストです。以下の例では、コンテキストのユーザー部分が不一致であるため、full,mismatch
パラメーターは、実際のコンテキストとともに期待される完全なコンテキストを出力します。ただし、単独のmismatch
を使用する場合は、コンテキストのタイプ部分のみをチェックします。コンテキストのタイプ部分が一致するため、予期されるコンテキストは出力されません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux コンテキストの不一致は、SELinux に関連するアクセス制御の問題を引き起こすことがよくあります。システムコールトレースに出力された不一致により、SELinux コンテキストの正確性のチェックが大幅に迅速化されます。システムコールトレースは、アクセス制御チェックに関する特定のカーネルの動作を説明することもできます。
バグ修正
-
SIOCGIFINDEX
コマンド、SIOCBRADDIF
、およびSIOCBRDELIF
ioctl
コマンドのデコードが修正されました。 -
clock_gettime64
、lock_settime64
、lock_adjtime64
、およびlock_getres_time64
システムコールが%clock
トレースクラスに追加されます。 -
statx
システムコールが%fstat
トレースクラスに追加されます。 -
以前は、strace はネットワークインターフェース名の出力にバッファーサイズが十分に使用していました。これにより、引用が必要なインターフェース名(たとえば、
-xx
モードの 4 文字を超える名前など)をアサーションに試行していました。RHEA-2022:4635 アドバイザリーでは、このバグが修正されています。