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 클라이언트를 시작하면 해당 변경 사항을 이전 변경 사항으로 덮어씁니다.
창에서 전체 화면을 종료할 수 있는지 테스트하기 위해 파일 소유권을 루트로 변경했습니다. chmod 444
그러나 루트가 아닌 사용자로 Spotify 클라이언트를 시작할 때 기본 설정 파일이 다음에서 변경되었습니다. 내 사용자에게 루트를 제공합니다.
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를 사용하면 수퍼유저 작업을 수행할 수 있나요? 루트가 아닌 사용자에게는 sudo 액세스 권한이 있지만 비밀번호만 있어야 합니다. kwallet은 이러한 sudo 권한을 요청하는 프로세스에 전달할 수 있습니까?
루트가 아닌 프로세스가 루트 소유의 읽기 전용 파일을 어떻게 변경할 수 있는지 모르겠습니다.
답변1
애플리케이션에는 이 작업을 수행하는 데 루트 권한이 필요하지 않습니다. 포함된 디렉터리에 쓸 수 있으면 루트 소유 파일을 삭제하고 자체 파일로 바꿀 수 있습니다. 파일의 inode가 변경되었습니다. 이는 원본 파일이 삭제되었음을 의미합니다.