简短回答:就是那四个能锁定任何 Mac Dock 的 defaults 键,外加一个在这里比在其他任何地方都更重要的设置:关闭最近使用的 App,因为在一台公共设备上,那个区域会把上一个使用者在做什么展示出来。
如果 Mac 在重启时会还原到某个镜像,请在镜像被捕获之前设置好锁定,否则还原操作会在每晚把它们撤销。
教室 Mac 面对的是三十个可以被告知不要做某事的人。图书馆或公共 Mac 完全没有这个条件,这就改变了你真正要防范的对象。
公共设备通常使用一个永久登录、从不退出的单一账户。这使得普通的 defaults 方式在这里
比在按学生分别登录的教室里更耐用,因为这些设置只需要存在于一个账户里。
defaults write com.apple.dock size-immutable -bool true
defaults write com.apple.dock position-immutable -bool true
defaults write com.apple.dock contents-immutable -bool true
defaults write com.apple.dock autohide-immutable -bool true
killall Dock
每一项都会让“系统设置”里对应的控件变灰,因此完全无法从界面中改动。它们能在重启、睡眠和 macOS 更新后依然生效。包含每个键类型的完整列表见每一条 Mac Dock defaults 命令。
macOS 会在 Dock 右侧添加一个最近使用的应用区域。在你自己的 Mac 上,这是个方便功能。而在公共 Mac 上,这就是上一个人打开过什么的一份清单,展示给下一个坐下来的人看。
defaults write com.apple.dock show-recents -bool false
killall Dock
上面这四项锁定不会移除它,因为这是一项独立的设置。请特意把它关闭。更多内容见如何阻止最近使用的 App 出现在 Dock 中。
许多公共 Mac 会被设置为恢复到已知状态,无论是通过镜像软件,还是在重启时还原磁盘快照。对这样一台设备来说,这是正确的运行方式,但它有一个大家往往要吃过亏才会明白的后果:
在基线被捕获之后所做的任何配置,都会在这台设备下次还原时被撤销。你的 Dock 锁定就是一种配置。先设置好、确认无误,然后再捕获镜像。如果这台 Mac 已经在使用中,改动应该放进基线里,而不是运行中的会话里,否则你每天早上都要重新设置一遍,还搞不清楚原因。
最近使用的应用设置和 Dock 的实际内容也是同样的道理。先把 Dock 排列成大众应该看到的样子,再进行捕获。
值得说清楚,因为这三种机制并不能互相替代。
defaults 命令会被另一条 defaults 命令撤销。任何能打开终端的人都可以在一分钟内解除全部四项。对于公众可以使用、且无法接触终端的公共设备,普通的锁定通常就够了。对于能接触到终端的设备,就不够了。
不会。它只会阻止 Dock 发生变化。限制哪些 App 可以运行是另一回事,那应该由屏幕使用时间或你的管理工具来处理。两者可以一起使用,解决的是不同的问题。
只有在重启足够频繁时才有用。每晚还原的设备仍然会有整整一天在漂移,而漂移在下午最严重,因为那时使用过它的人最多。
会的。它们保存在账户的偏好设置里,而不是系统里,所以更新不会影响它们。而还原镜像则会用基线中的内容将它们替换掉。
偏好设置是按账户存储的,所以在一个登录账户里设置的内容不会出现在另一个账户里。请在公众实际使用的那个账户中设置锁定。如果那个账户会在会话结束后被 macOS 清空,这些设置也会随之消失,这种情况下正确的答案是来自管理工具的设备范围描述文件,而不是命令。
命令是一样的,情况却不同:教室里有账户、有人监管、有能反映问题的对象,而前台有一块顾客能看到的第二块屏幕。参见在教室 Mac 上锁定 Dock、在前台或展厅 Mac 上锁定 Dock、在家用 Mac 上锁定 Dock,或适用于一般情况的共享 Mac 指南。