我正在为学校开发OSX应用程序,其中同一mac的多个用户将能够基于共享配置(即数据库连接信息)启动程序。 按照设计,不应允许没有管理权限的普通用户修改配置。
基于unix约定,我将配置文件存储在/ usr / shared /下,但这导致了另一个问题: - 即使以管理员身份登录,应用程序也无法写入上述位置。如果需要对配置文件进行更改,用户必须使用提升的权限(使用sudo)启动应用程序。
我的问题是,使用“sudo”写入禁区是否是mac osx中的常见做法?
答案 0 :(得分:1)
我想说在Mac上使用“sudo”对某些类型的用户来说只是常规做法,例如网络管理员和不仅仅使用标准应用程序的用户。
我当然不希望学生和老师使用终端和sudo。
在开发OSX应用程序时,Apple从安全框架提供授权服务,以便应用程序能够将特权功能与标准功能分开,并在需要时提示用户提供凭据。
您将在“系统偏好设置”窗格中看到此信息,您可以在其中看到挂锁图标。任何应用程序都可以调用这些服务,但我不确定它是否可以用于Java。这是Apple推荐的处理此类问题的方法,此外还将特权任务分解为具有“SMJobBless”功能的单独应用程序。
有趣的是,您的问题域直接映射到Apple's described scenario使用此系统进行“简单,自我限制的应用程序”。
话虽如此,如果只有你自己或其他网络管理员要修改配置文件,那么我建议不要删除应用程序中的任何功能来修改它,直接用sudo和文本编辑器这样做。作为vi,必要时。
答案 1 :(得分:0)
当然,除非你用sudo(root)chmod它的特权