无需root即可重置用户密码


8

有什么方法可以允许非root用户更改其他用户的密码。具体来说,有一种方法可以授予服务台员工进行密码重置的能力。服务台已经可以重置Windows密码,这很容易委托出去。

尽管大多数在HP-UX上,但它们在各种服务器类型上。不幸的是,服务器上运行的应用程序阻止了我们使用LDAP,因此这些服务器是独立的,用户忘记了密码。经常。要求知道root密码的服务器管理员(尤其是在深夜)是浪费资源。

如果可能,是否还会阻止用户更改根用户身份,例如Windows阻止用户更改非管理员帐户的管理员密码。

Answers:



8

添加一个称为帮助台的组,并将所有holdesk用户添加到该组。然后将以下内容添加到sudoers文件中。

%helpdesk ALL=/usr/bin/passwd

现在,他们可以通过sudo更改密码,但只能更改其他内容。


1

鉴于据说HP-UX支持PAM,在这里我敢于提到以下尝试解决此问题的简洁方法:

使用pam_tcb(tcb-/ etc / shadow的替代品),每个用户都有用户的密码文件-可以在没有root权限的情况下进行操作(事实上,在Owl中,passwd 它不是 setUID root)可以授予修改特定用户(而不是其他用户,例如“ root”)的密码到特定组的权限(只需修改影子文件的权限)。

但这可能还不是可行的解决方案,因为我看不到pam_tcbHP-UX 的端口。


-1

更新: 没关系,passwd已经是setuid root。哎呀。

您可以将setuid属性赋予passwd程序。做就是了

sudo chmod u+s `which passwd`

然后确保只有某些用户可以使用它,因此更改组并限制权限:

sudo chgrp password_reset_delegates `which passwd`
sudo chmod 770 `which passwd`

并将您的用户添加到该组

sudo adduser frank password_reset_delegates
sudo adduser barbara password_reset_delegates

您可能希望复制不带setuid的passwd程序,以便其他用户可以更改自己的密码。

另外,您可以设置sudo并允许sudo仅对服务台用户提供passwd程序。


使用sudo访问方法还将在必要时创建一个不错的审核跟踪以供审核。您将能够看到谁在为哪些用户做什么。
mcmeel,2011年

sudo是我要走的路,但是有人已经发布了它,我想我会提出选择。
詹姆斯

潜在的聪明主意,除了passwd已经运行suid root 的事实,因为它需要写入系统密码数据库。
MikeyB 2011年

哈哈,哎呀,你是对的。
詹姆斯

如果错误,请考虑删除答案;)。
巴特·德沃斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.