无需 root 权限即可重置用户密码

无需 root 权限即可重置用户密码

有没有办法允许非 root 用户更改其他用户的密码。具体来说,有没有办法授予帮助台员工重置密码的权限。帮助台已经可以重置 Windows 密码,这很容易委派出去。

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

如果可能的话,它是否也能阻止用户更改根用户,就像 Windows 阻止用户从非管理员帐户更改管理员密码一样。

答案1

答案2

添加一个名为 helpdesk 的组,并将所有 heldesk 用户添加到该组。然后将以下内容添加到 sudoers 文件中。

%helpdesk ALL=/usr/bin/passwd

现在他们可以通过 sudo 来更改密码,但不能进行其他操作。

答案3

鉴于 HP-UX 据称支持聚丙烯酰胺,我敢在这里提及以下解决这个问题的尝试性的干净方法:

使用pam_tcb(tcb - /etc/shadow 的替代品),并且每个用户都会有自己的密码文件——无需 root 权限即可操作这些文件(事实上,在 Owl 中,passwd 不是你可以将修改某些用户的密码的权限授予特定的组(例如:setUID root),并且可以将修改某些用户(而不是其他用户,比如“root”)密码的权限授予特定的组(通过简单地修改影子文件的权限就可以)。

pam_tcb但它可能还不是一个实用的解决方案,因为我没有看到到 HP-UX的移植。

答案4

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

你可以给 passwd 程序赋予 setuid 属性。只需这样做

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 程序。

相关内容