目的
以我自己的身份登录时,更改系统上的墙纸时需要root密码。与Preferences
在需要密码才能解锁页面的情况下编辑安全设置类似的行为。或在Keychain
查看密码时输入。
过时的解决方案
com.apple.desktop.plist
不再存在。99%的答案只是简单地转贴说保护此文件将解决我的问题。此解决方案自以来似乎已过时10.9.5 Mavericks
。我目前正在参加10.11.6 El Capitan
FYI。- 首选项对
Desktop & Screensaver
面板不提供任何保护。您无法阻止任何人在那里更改壁纸。 desktoppicture.db
在~/Library/Application Support/Dock
为涉嫌的保护壁纸兴趣点,但似乎在停止变化,只读保护设置,并通过root用户拥有,即使几乎无用。- 该
/System/Library/CoreServices/DefaultDesktop.jpg
硬连接不符合当前的壁纸,只是默认一个。 - 似乎没有人最隐晦的想法是指向当前显示的墙纸的链接或文件入口点在哪里。
尝试
锁定墙纸要求我阻止用户执行以下操作:
- 使用
Use Image As Desktop Picture
通过在Safari图像右击。 Services->Set Desktop Picture
在Finder中使用以更改背景。- 使用
Preferences->Desktop & Screensaver
更改背景。
通过设置为只读并将其锁定,我获得了1~/Library/Safari/Safari Desktop Picture
。这将阻止将Safari中的任何图像设置为桌面图片。
这使我要么锁定首选项并删除通过2设置桌面映像的选项,要么锁定指向当前桌面映像的任何文件,而无需使用密码即可进行修改。好吧,因为您不能保护中的Desktop & Screensaver
窗格Preferences
,所以该选项不在窗口中。
剩下的只有一种解决方案。查找包含当前桌面映像的副本或指针的任何硬链接或文件,并对其进行保护。但是,问题是我只是不知道在哪里。
笔记
为了调整某些文件(
desktoppicture.db
例如)的权限,可能必须禁用Apple的“系统完整性保护” 。这需要启动进入恢复模式并使用禁用它csrutil disable
。禁用系统完整性保护后,我仍然无法更改某些文件。我启动到单用户模式,然后使用
fsck
它mount -uw /
来read only
调整权限时遇到错误。使用chflags nouchg <file>
之前,chmod 400 <file>
允许我最终调整权限。尽管我必须说,只要我先chflags nouchg <file>
尝试在目标上使用,然后再尝试调整权限,就可以在正常使用情况下调整权限。因此可能不需要单用户模式。
摘要/ tl; dr
哪个文件控制着上当前显示的桌面墙纸macOS
,以及必须执行哪些步骤才能要求root用户密码来调整墙纸。