
somegroup
システムログを読み取るための読み取り専用権限を付与する方法は? (私はDebian10バスターを使用しています)。
$ journalctl
Hint: You are currently not seeing messages from other users and the system.
Users in the 'systemd-journal' group can see all messages. Pass -q to
turn off this notice.
No journal files were opened due to insufficient permissions.
グループにユーザーを追加できることはわかっていますが、systemd-journal
グループに読み取り権限を付与するにはどうすればよいですか?
答え1
長すぎます。
次のファイルを生成します。
# /etc/tmpfiles.d/somegroup_journal.conf
#Type Path Mode User Group Age Argument
a+ /run/log/journal - - - - d:group:somegroup:r-x
a+ /run/log/journal - - - - group:somegroup:r-x
a+ /run/log/journal/%m - - - - d:group:somegroup:r-x
a+ /run/log/journal/%m - - - - group:somegroup:r-x
a+ /run/log/journal/%m/*.journal* - - - - d:group:somegroup:r--
a+ /run/log/journal/%m/*.journal* - - - - group:somegroup:r--
それを見つける方法:
男性systemd-journald.service(8)次の内容があります。
他のユーザーとグループには、ファイルシステムアクセス制御リスト(ACL)を介してログファイルへのアクセス権を付与できます。 Distrosと管理者は、オプションで次のコマンドを使用して、「wheel」および「adm」システムグループのすべてのメンバーに読み取りアクセス権を付与できます。
# setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/
完璧に見えますが、この例は感動的です/var/log/journal/
。ログ制御優先順位/run/log/journal/
は次のとおりです。以下のソース:
if (laccess("/run/log/journal", F_OK) >= 0)
dir = "/run/log/journal";
else
dir = "/var/log/journal";
/* If we are in any of the groups listed in the journal ACLs,
* then all is good, too. Let's enumerate all groups from the
* default ACL of the directory, which generally should allow
* access to most journal files too. */
r = acl_search_groups(dir, &g);
/run
はマウントされているため、tmpfs
次のACLルールが維持されない可能性があります。
# setfacl -Rnm g:somegroup:rx,d:g:somegroup:rx /run/log/journal/
永続化するには、/run/log/journal
build.browseを設定してください。ソースも少しあります。、私たちは以下を見つけますtmpfiles.d/systemd.conf.m4
:
z /run/log/journal 2755 root systemd-journal - -
Z /run/log/journal/%m ~2750 systemd-journal - -
m4_ifdef(`HAVE_ACL',`
a+ /run/log/journal/%m - - - - d:group:adm:r-x
a+ /run/log/journal/%m - - - - group:adm:r-x
a+ /run/log/journal/%m/*.journal* - - - - d:group:adm:r--
')'m4_dnl
これは、ACLルールをに追加する必要があることを示しますtmpfiles.d
。上記のファイルのコンパイル済みバージョンはローカルにあります/usr/lib/tmpfiles.d/systemd.conf
。この例を人と組み合わせるtmpfiles.d(5)実行可能なソリューションを作成するのに役立ついくつかの詳細を提供してください。
次のファイルを生成します。
# /etc/tmpfiles.d/somegroup_journal.conf
#Type Path Mode User Group Age Argument
a+ /run/log/journal - - - - d:group:somegroup:r-x
a+ /run/log/journal - - - - group:somegroup:r-x
a+ /run/log/journal/%m - - - - d:group:somegroup:r-x
a+ /run/log/journal/%m - - - - group:somegroup:r-x
a+ /run/log/journal/%m/*.journal* - - - - d:group:somegroup:r--
a+ /run/log/journal/%m/*.journal* - - - - group:somegroup:r--
クイックテストと再起動でこれが動作することを確認しました!