Ubuntu 22.04.2 LTSシステム(サーバーではなくパーソナルコンピュータ)で、多くのファイルへのアクセス権を何らかの形で混乱させ、これによっていくつかの問題が発生しました。最近はUsers and Groups
GUIを介して起動できないことがわかりました。
結果は次のエラーメッセージです。
The configuration could not be loaded. An unknown error occurred.
調査の結果(4744)/usr/lib/dbus-1.0/dbus-daemon-launch-helper
から(4755)に権限を変更すると、プログラムが再実行されることがわかりました。-rwsr-xr--
-rwsr-xr-x
ls -l /usr/lib/dbus-1.0/dbus-daemon-launch-helper
権限を調査し、権限を変更するために使用しますsudo chmod +x /usr/lib/dbus-1.0/dbus-daemon-launch-helper
。
これは安全ですか?そうでない場合は、プログラムを再起動するオプションは何ですか?
答え1
ヘルパーは、強化された権限を持ち、ユーザーまたはユーザープロセスがそのタスクを直接実行することなく機能を使用できるようにするツールです。したがって、機能を復元する権限が返されたことは驚くべきことではありません。
しかし。一部の権限では、以下を取得するためにルート(したがってsetuidルート)は必要ありません。能力これは、rootユーザー全体が実行できる操作のサブセットであり、時には十分ですが、所有権が変更されるとファイルのフラグが削除されます。ヘルパーに対する特定の権限は、アクセスが制限されたユーザーまたはプロセスのサブセットにのみ予約されています。
これは後者の場合です/usr/lib/dbus-1.0/dbus-daemon-launch-helper
。
これPSdbus
(このファイル提供) 以下のように権限と所有権を変更します。
MESSAGEUSER=messagebus
LAUNCHER=/usr/lib/dbus-1.0/dbus-daemon-launch-helper
(ユーザー/グループが存在しない場合でも作成されます)
dpkg-statoverride --update --add root "$MESSAGEUSER" 4754 "$LAUNCHER"
messagebus
現在のOPの場合と同じプロセスではなく、そのグループのプロセスに使用を制限してください。
これでシステムが正常に動作するため、最も簡単な方法はdbus
パッケージを再インストールして権限を変更することです。
apt-get reinstall dbus
または手動で:
chown root:messagebus /usr/lib/dbus-1.0/dbus-daemon-launch-helper
chmod 4754 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
特にアクセシビリティツールが関連している場合は、影響を受ける他のすべてのファイルを確認する必要があります。
パッケージメタデータファイルに関する追加の注意postinst
:
見つける必要があるパッケージ:
dpkg -S /usr/lib/dbus-1.0/dbus-daemon-launch-helper
答えなければならない:
dbus: /usr/lib/dbus-1.0/dbus-daemon-launch-helper
パッケージのメタデータはどこにありますか?
FOOパッケージの場合、これまで常にさまざまなファイルに存在していました(複数のアーキテクチャパッケージ(通常はライブラリ)の場合は、他のアーキテクチャを
/var/lib/dpkg/info/FOO.*
含めたり提供したりすることもできます)。:amd64
/var/lib/dpkg/info/FOO:amd64.*
確認するスクリプトは
postinst
次のとおりです。/var/lib/dpkg/info/dbus.postinst
パッケージがインストールされていません:
cd /tmp apt-get download dbus dpkg --raw-extract dbus_*.deb /tmp/somewhere less /tmp/somewhere/DEBIAN/postinst
このファイルは通常自動的に生成されますが、ソースdbus
に提供されます。これはDebianリポジトリファイルへのリンクです(いくつかの古いUbuntuタグも含まれていますが、内容はほぼ同じです):debian/dbus.postinst