bash - 如何验证用户输入的密码实际上是该用户的正确密码?
问题描述
我有一个 shell 脚本,它读取用户输入的密码,然后将该值通过管道传输到 STDIN 以sudo
通过 ssh 实现函数。
echo "Password for ${USER}:"
read -s password
接着:
ssh -n ${host} "echo ${password} | sudo -S <some command>"
但是,如果用户输入了错误的密码,则该ssh
行会失败,因为虽然用户确实具有 sudo 访问权限,但密码不正确。
注意:主机和远程计算机上的用户(正确)密码将相同
bash 中是否存在一种机制来本地验证用户的密码是否正确?
我尝试过的事情:
- 运行类似的东西
sudo ls
并检查非 0 退出代码(不起作用)
解决方案
推荐阅读
- java - 如何从二维数组中获取数组并将数字转换为整数?
- google-app-engine - 如何将同一域用于不同的 App Engine 项目(开发和产品)?
- kubernetes - 为什么我不能在 kubernetes 中创建具有足够权限的用户
- reactjs - ReactJS axios post:当它来自/去往后端时返回null
- javascript - 渲染模式弹出窗口
- pandas - 将 txt 文件转换为 pandas 数据框
- android - 在 Android Room 中列出模型
- python - DataFrame.hist() 形状看起来不正确
- postgresql - Vuejs/Posgres - 单击按钮时,我想在 db postgresql 中保存一个值
- python-3.x - 从熊猫中的嵌套字典中自动提取列