我一直在使用 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
。 (用于锁定密码文件的源代码链接)。
鉴于您可以成功使用usermod
while root
,这看起来不像错误进程锁定 的问题/etc/.pwd.lock
,因此根据已发布的 Illumos 源(诚然现在有点过时)生成错误消息的唯一失败您看到的是创建失败/etc/.pwd.lock
,几乎可以肯定是因为您的进程没有对 的写入权限/etc
。
那是为什么它失败了。不幸的是,我没有时间研究它是否应该失败与否。