![仅用于更改密码的 shell](https://linux22.com/image/182437/%E4%BB%85%E7%94%A8%E4%BA%8E%E6%9B%B4%E6%94%B9%E5%AF%86%E7%A0%81%E7%9A%84%20shell.png)
我需要限制 RHEL 8 系统上用户的所有访问权限,并允许他们仅更改自己的密码。我以为我能做到
[root]$ usermod <username> -s /bin/passwd
但这不起作用。我缺少什么?
更新:
需要明确的是,行为是,一旦机器启动(多用户目标),您会看到首先输入用户名的屏幕,然后提示符会更改为询问密码,如果您输入的用户是我将 shell 设置为 或/bin/passwd
(/usr/bin/passwd
以及通过vipw
直接进入/etc/passwd
或通过usermod
),屏幕重置并在一瞬间再次返回以询问用户名,就好像什么也没发生一样。其他一切都没有改变;有了root,它就可以继续正常工作。
答案1
/etc/passwd
您需要做的是将文件中的 shell 替换为命令/usr/bin/passwd
的路径或任何路径passwd
。您可以使用命令来做到这一点vipw
。我不确定是否chsh
允许您在该字段中更改为非 shell 二进制文件。
usermod -s
也在寻找得到正式认可的shell,并且/bin/passwd
显然不是经过批准的 shell。