Solaris 11 中的“/usr/lib/passmgmt:密码文件正忙。稍后重试”

Solaris 11 中的“/usr/lib/passmgmt:密码文件正忙。稍后重试”

我一直在使用 Solaris 11 系统,我在其中为自己创建了多个用户帐户。不管怎样,我给了我的一个非特权帐户身份solaris.*验证,然后尝试给另一个非特权帐户提供System Administrator配置文件:

用户$授权
索拉里斯.*
user$ pfexec usermod -P"+系统管理员" user2

此操作失败并显示以下错误消息(是的,重复了三次):

/usr/lib/passmgmt:密码文件繁忙。稍后再试
/usr/lib/passmgmt:密码文件繁忙。稍后再试
/usr/lib/passmgmt:密码文件繁忙。稍后再试

我“稍后再试” - 即使只是重新启动之后 - 每次我都得到相同的结果。这是与没有solaris.*(或 -auths 之一assign)的 用户尝试该命令时完全不同的错误。

我还尝试显式添加有关分配配置文件、身份验证和角色的身份验证 - 例如。solaris.profile.assign- 除此之外solaris.*(例如如何solaris.grant必须明确分配);但这没有帮助(当我做了auths- 只solaris.*显示时也没有出现)。

然而,我已经成功地用来usermod分配这些东西或者在使用用户时主要管理员配置文件(我从以前的 Solaris 版本复制粘贴)。

然而我真的认为solaris.*- 或者就此而言solaris.profile.assign- 应该足以用来usermod向其他用户授予特权......

那么(三重)错误消息是什么意思?为什么不起作用?如果它不应该工作,为什么不呢?使其正常工作的正确“最少”身份验证和/或配置文件组合是什么?

答案1

为什么不起作用?

错误消息

/usr/lib/passmgmt: Password file(s) busy.  Try again later
/usr/lib/passmgmt: Password file(s) busy.  Try again later
/usr/lib/passmgmt: Password file(s) busy.  Try again later

可能意味着您无权在/etc.

我能找到的该错误消息的唯一来源是passmgmt 源代码passmgmt并在创建文件失败/etc/.pwd.lock或无法实际锁定文件(如果文件已存在)时生成。

passmgmt以及可能的许多其他 Solaris 实用程序,尝试使用文件锁定密码文件/etc/.pwd.lock。 (用于锁定密码文件的源代码链接)。

鉴于您可以成功使用usermodwhile root,这看起来不像错误进程锁定 的问题/etc/.pwd.lock,因此根据已发布的 Illumos 源(诚然现在有点过时)生成错误消息的唯一失败您看到的是创建失败/etc/.pwd.lock,几乎可以肯定是因为您的进程没有对 的写入权限/etc

那是为什么它失败了。不幸的是,我没有时间研究它是否应该失败与否。

相关内容