写入/ usr / shared /时使用“sudo”提升特权(暂时)

时间:2013-09-18 08:09:41

标签: java macos file-io sudo elevated-privileges

我正在为学校开发OSX应用程序,其中同一mac的多个用户将能够基于共享配置(即数据库连接信息)启动程序。 按照设计,不应允许没有管理权限的普通用户修改配置。

基于unix约定,我将配置文件存储在/ usr / shared /下,但这导致了另一个问题: - 即使以管理员身份登录,应用程序也无法写入上述位置。如果需要对配置文件进行更改,用户必须使用提升的权限(使用sudo)启动应用程序。

我的问题是,使用“sudo”写入禁区是否是mac osx中的常见做法?

2 个答案:

答案 0 :(得分:1)

我想说在Mac上使用“sudo”对某些类型的用户来说只是常规做法,例如网络管理员和不仅仅使用标准应用程序的用户。

我当然不希望学生和老师使用终端和sudo。

在开发OSX应用程序时,Apple从安全框架提供授权服务,以便应用程序能够将特权功能与标准功能分开,并在需要时提示用户提供凭据。

您将在“系统偏好设置”窗格中看到此信息,您可以在其中看到挂锁图标。任何应用程序都可以调用这些服务,但我不确定它是否可以用于Java。这是Apple推荐的处理此类问题的方法,此外还将特权任务分解为具有“SMJobBless”功能的单独应用程序。

有趣的是,您的问题域直接映射到Apple's described scenario使用此系统进行“简单,自我限制的应用程序”。

话虽如此,如果只有你自己或其他网络管理员要修改配置文件,那么我建议不要删除应用程序中的任何功能来修改它,直接用sudo和文本编辑器这样做。作为vi,必要时。

答案 1 :(得分:0)

当然,除非你用sudo(root)chmod它的特权