[OS X 10.9.4] 三个问题,但它们实际上都是同一件事的一部分。
计算机拥有一名管理用户和一名受限用户(除了内置 root 和一名来宾用户)。我确实是唯一的用户,但是出于安全原因,我更喜欢使用权限有限的登录名。当我尝试在幕后工作时,这会引发几个问题。
如果我
sudo Administrator
从受限用户登录,则需要密码。但管理员的密码被拒绝。我不知道为什么或者该怎么办。当我以管理员身份登录并尝试更新从管理员登录安装到 usr/local/bin/... 的应用程序(从终端)时,该操作被拒绝,因为我(管理员)没有写入权限必要的目录。但它们是 usr/local/ 目录,而且我已经安装在那里了,怎么可能没有足够的权限呢?
我不想将受限用户放在 sudoers 列表中,因为这会损害安全框架,但我想通过受限用户的登录来执行一些管理操作。在 Windows 中,UAC 允许这样做;在 KDE/Fedora 中,我可以做到这一点(与 Windows 非常相似)。我在 OS X 中找不到任何类似的东西。有吗?
答案1
第1部分
我假设你正在做类似sudo -u admin_user some_command...
(run some_command
as admin_user
) 的事情。您提到您尚未将受限用户放入 sudoers 列表中;因此受限用户将无法调用sudo
根本不。询问密码只是一种形式,无论您输入什么,它都会拒绝尝试。我不知道为什么要这样设计,但它就是这样工作的。您必须添加一个条目,允许受限用户作为管理用户sudoers
调用。sudo
或者只使用su
,这不需要任何此类配置。
这是/etc/sudoers
您可能会使用的一行:
# From left to right: allow limited_user, from any host, to
# sudo as admin_user and run any command.
limited_user ALL=(admin_user) ALL
但请注意,这sudo
会要求您limited_user
输入密码,不是 admin_user
的。另一方面,su
会询问您admin_user
的密码。
请参阅man 5 sudoers
参考资料 来了解更多信息/etc/sudoers
。请注意:语法描述非常复杂。
第2部分
就 OS X 的 Unix/BSD 部分而言,管理员与任何其他用户没有什么不同。如果/usr/local/bin
是 root 拥有并具有通常的 rwxr-xr-x 权限,那么您必须是 root(即通过 成为 root sudo
)才能写入它,无论系统偏好设置显示您拥有什么权限。您还没有说明您安装的是什么或如何安装它,但如果它要求输入密码,则sudo
可能已被使用。
第三部分
允许非 root 用户有限访问文件系统某些部分的常用 Unix 方法是使用组。我不确定您在 Fedora/KDE 中指的是类似 UAC 的系统,但如果它不是 SELinux 或 ACL,那么它就是用户和组管理。我无法谈论 Windows 访问控制的工作原理。
例如,如果您想同时授予admin_user
和limited_user
的写入权限/usr/local/bin
,您可以installation
在系统偏好设置(用户和帐户)中创建一个组,向其中添加admin_user
和limited_user
,然后添加chown root:installation /usr/local/bin; chmod ug+rwx /usr/local/bin
。/usr/local/bin
然后将具有 rwxrwxr-x 权限(所有者读/写/列表,组读/写/列表,其他人仅读/列表)。
可能有一种更特定于 Mac 的方法来完成我刚才描述的操作。我的经验仅限于更传统的 *nix 系统。