无法更改 Mac OS X 上的 CUPS 设置

无法更改 Mac OS X 上的 CUPS 设置

我正在本地通过 Mac Web 界面访问 cups,需要更改一些设置。我输入了地址 (http://127.0.0.1:631) 并进入管理面板(无需登录)。

我去更改服务器部分中的某些选项,选中复选框并点击“更改设置”。页面重新加载,没有选中这两个选项,就像之前一样。

为什么我的系统不接受我的配置更改,我需要在某个地方登录吗?

附言:我尝试修复磁盘权限,因为这似乎是 Mac 无法正常工作时要执行的标准操作,但这并没有起到作用。

答案1

对于 Mac OS X 上的 CUPS,您确实需要验证您的用户,但具体如何验证并不十分清楚。一旦您验证了您的会话(使用您的登录名和密码),界面的其余部分就会按预期工作。当您单击“更改设置”按钮时,它会提示您输入用户名和密码。

我还发现,只有在使用 Safari 时身份验证才能正常工作 - 在 Chrome 和 Firefox 中会失败。(Tiger 和 Leopard 中的旧版本在其他浏览器上运行良好)

答案2

默认情况下,CUPS 管理界面需要“root”才能更改任何内容。默认情况下,OSX 会禁用“root”用户。要通过 CUPS Web 界面进行更改,您需要启用 root。Apple 已发布此程序,具体步骤因 OS X 版本而异:

http://support.apple.com/kb/HT1528?viewlocale=en_US

对于 10.6:

  1. 来自苹果菜单选择系统偏好设置....
  2. 来自看法菜单选择帐户
  3. 单击锁并使用管理员帐户进行身份验证。
  4. 单击“登录选项...”。
  5. 单击右下角的“编辑...”或“加入...”按钮。
  6. 单击“打开目录实用程序...”按钮。
  7. 单击“目录实用程序”窗口中的锁。
  8. 输入管理员帐户名和密码,然后单击“确定”。
  9. 选择启用 Root 用户来自编辑菜单。
  10. 在密码和验证字段中输入您想要使用的根密码,然后单击确定。

执行上述步骤后,您可能必须重新启动 CUPS,以便实现您想要的效果。

答案3

我需要在 Web 界面中使用什么密码?

MacOS X 10.3.x 破坏了 Web 界面中的用户身份验证。以下是来自 Apple 的消息:

这里发生的事情是 OS X 10.3 (Panther) 切换到 cupsd 无法读取的影子密码形式。getpwent(3) 手册页讨论了详细信息:

从 Mac OS X 10.3 开始,此功能现在根据 DirectoryServices 中为查询用户存储的 AuthenticationAuthority 值,针对每个用户有不同的行为。

如果查询的用户仍然是旧版加密密码用户或现在具有包含“;basic;”的 AuthenticationAuthority 值,则这些例程将以标准 BSD 方式运行。这些函数将“隐藏”密码文件,例如,仅允许某些程序访问加密密码。如果调用它们的进程的有效 uid 为 0,则将返回加密密码,否则,返回结构的密码字段将指向字符串“*”。

默认情况下,在 Mac OS X 10.3 及更高版本中,所有用户的 AuthenticationAuthority 都将包含值“;ShadowHash;”。这些用户的可见密码值为“********”。这些函数将无法访问加密密码。设置或更改用户密码必须完全通过此默认用户的 DirectoryService API 完成。

目前有两种解决方法:

  1. <Limit GET> / </Limit>从 /etc/cups/cupsd.conf 中删除以下行
  2. 切换回加密密码。这可以在 Netinfo Manager 中通过将用户的“AuthenticationAuthority”从“ShadowHash”更改为“basic”,并使用“openssl passwd”设置密码来完成。以下 macosxhints 文章讨论了这一点:

    http://www.macosxhints.com/article.php?story=2003102523435492

CUPS 存储库(Darwin 和 cups.org 的)已更新,安装了一个 pam(8) 配置文件,该文件可通过 pam_securityserver 模块与这些密码配合使用。这解决了 Tiger 中的问题。

上述文章的评论也包含一些相关信息。

相关内容