Spotify公式アプリは、root以外のユーザーとしてrootアクセス権を取得することができます

Spotify公式アプリは、root以外のユーザーとしてrootアクセス権を取得することができます
OS: Debian 11 5.10.0-22-amd64 #1 SMP Debian 5.10.178-3 (2023-04-22) x86_64 GNU/Linux
KDE Plasma 5.20.5
Spotify: spotify-client/stable,now 1:1.2.8.923.g4f94bf0d amd64 [installed]

Spotifyクライアントで興味深いことが起こったことを発見しました。クライアントが常にフルスクリーンモードで停止する問題を解決するために。~/.config/spotify/prefs ウィンドウ設定値を編集して保存した後にSpotifyクライアントを起動すると、その変更は以前の変更で上書きされます。

ウィンドウでフルスクリーンを終了できるかどうかをテストするために、ファイルの所有権をrootに変更しました。chmod 444ただし、root以外のユーザーとしてSpotifyクライアントを起動すると、デフォルト設定ファイルが次から変更されました。私のユーザーにrootを提供します。

root@localhost:/home/ehammer/.config/spotify# ls -l
total 12
-rw-r--r-- 1 ehammer ehammer 1265 May 13 09:39  prefs
drwx------ 4 ehammer ehammer 4096 Feb 12  2022 'User Data'
drwxrwxr-x 3 ehammer ehammer 4096 Feb 12  2022  Users
root@localhost:/home/ehammer/.config/spotify# ps -Helf | grep spotify
4 S root       39890   39357  0  80   0 -  1560 -      09:45 pts/1    00:00:00               grep spotify
root@localhost:/home/ehammer/.config/spotify# nano prefs 
root@localhost:/home/ehammer/.config/spotify# ls -lisa
total 20
19794776 4 drwx------  4 ehammer ehammer 4096 May 13 09:46  .
19791874 4 drwxr-xr-x 43 ehammer ehammer 4096 May 13 09:43  ..
19806299 4 -rw-r--r--  1 ehammer ehammer 1233 May 13 09:46  prefs
19794777 4 drwx------  4 ehammer ehammer 4096 Feb 12  2022 'User Data'
19795125 4 drwxrwxr-x  3 ehammer ehammer 4096 Feb 12  2022  Users
root@localhost:/home/ehammer/.config/spotify# chown root:root prefs
root@localhost:/home/ehammer/.config/spotify# chmod 444 prefs
root@localhost:/home/ehammer/.config/spotify# ls -lisa
total 20
19794776 4 drwx------  4 ehammer ehammer 4096 May 13 09:46  .
19791874 4 drwxr-xr-x 43 ehammer ehammer 4096 May 13 09:43  ..
19806299 4 -r--r--r--  1 root         root         1233 May 13 09:46  prefs
19794777 4 drwx------  4 ehammer ehammer 4096 Feb 12  2022 'User Data'
19795125 4 drwxrwxr-x  3 ehammer ehammer 4096 Feb 12  2022  Users
root@localhost:/home/ehammer/.config/spotify# ps -Helf | grep spotify
4 S root       40089   39357  0  80   0 -  1560 -      09:46 pts/1    00:00:00               grep spotify
0 S ehammer   39903    1580 21  80   0 - 889253 -     09:46 ?        00:00:01     /usr/share/spotify/spotify
0 S ehammer   39907   39903  0  80   0 - 99941 -      09:46 ?        00:00:00       /usr/share/spotify/spotify --type=zygote --no-zygote-sandbox --no-sandbox --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --log-file=/usr/share/spotify/debug.log
1 S ehammer   39929   39907  5  80   0 - 1054195 -    09:46 ?        00:00:00         /usr/share/spotify/spotify --type=gpu-process --no-sandbox --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --gpu-preferences=WAAAAAAAAAAgAAAIAAAAAAAAAAAAAAAAAABgAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAABAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAA== --log-file=/usr/share/spotify/debug.log --shared-files --field-trial-handle=0,i,10976918143839319429,9883613349491165854,131072 --disable-features=BackForwardCache
0 S ehammer   39908   39903  0  80   0 - 99943 -      09:46 ?        00:00:00       /usr/share/spotify/spotify --type=zygote --no-sandbox --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --log-file=/usr/share/spotify/debug.log
1 S ehammer   39987   39908  0  80   0 - 155341 -     09:46 ?        00:00:00         /usr/share/spotify/spotify --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --no-sandbox --proxy-server=direct:// --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --log-file=/usr/share/spotify/debug.log --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,10976918143839319429,9883613349491165854,131072 --disable-features=BackForwardCache
1 S ehammer   40065   39908 44  80   0 - 13148967 -   09:46 ?        00:00:02         /usr/share/spotify/spotify --type=renderer --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --disable-spell-checking --user-data-dir=/home/ehammer/.config/spotify/User Data --first-renderer-process --no-sandbox --log-file=/usr/share/spotify/debug.log --lang=en-US --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=5 --time-ticks-at-unix-epoch=-1683982549076978 --launch-time-ticks=3057595647 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,10976918143839319429,9883613349491165854,131072 --disable-features=BackForwardCache
0 S ehammer   39995   39903  3  80   0 - 260094 -     09:46 ?        00:00:00       /usr/share/spotify/spotify --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --proxy-server=direct:// --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --log-file=/usr/share/spotify/debug.log --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,10976918143839319429,9883613349491165854,131072 --disable-features=BackForwardCache
root@localhost:/home/ehammer/.config/spotify# ls -lisa
total 20
19794776 4 drwx------  4 ehammer ehammer 4096 May 13 09:46  .
19791874 4 drwxr-xr-x 43 ehammer ehammer 4096 May 13 09:43  ..
19812078 4 -rw-r--r--  1 ehammer ehammer 1233 May 13 09:46  prefs
19794777 4 drwx------  4 ehammer ehammer 4096 Feb 12  2022 'User Data'
19795125 4 drwxrwxr-x  3 ehammer ehammer 4096 Feb 12  2022  Users

ps出力にデバッグログはありませんが、いくつかのログエントリがあります。

May 13 09:47:01 localhost systemd[1377]: app-spotify-4ebf47d306f04211acbf7b15afdef435.scope: Consumed 4.087s CPU time.
May 13 09:47:01 localhost systemd[1377]: app-spotify-4ebf47d306f04211acbf7b15afdef435.scope: Succeeded.
May 13 09:46:46 localhost dbus-daemon[1397]: [session uid=1000 pid=1397] Activating service name='org.kde.kwalletd5' requested by ':1.103' (uid=1000 pid=39903 comm="/usr/share/spotify/spotify ")
May 13 09:46:46 localhost dbus-daemon[1397]: [session uid=1000 pid=1397] Activating service name='org.kde.kwalletd5' requested by ':1.103' (uid=1000 pid=39903 comm="/usr/share/spotify/spotify ")
May 13 09:46:46 localhost systemd[1377]: Started Spotify - Music Player.

systemdまたはdbusを使用してスーパーユーザー操作を実行できますか? root以外のユーザーにはsudoアクセス権がありますが、パスワードのみが必要です。 kwalletはこれらのsudo権限を要求するプロセスに渡すことができますか?

ルート以外のプロセスがルート所有の読み取り専用ファイルをどのように変更できるかわかりません。

答え1

アプリケーションは、この操作を実行するためにroot権限を必要としません。埋め込みディレクトリに書き込むことができれば、ルート所有ファイルを削除して独自のファイルに置き換えることができます。ファイルのinodeが変更されました。これは、元のファイルが削除されたことを意味します。

関連情報