您可以运行命令usermod -p '_hash_' root,其中hash是适用于该系统的密码的哈希值。所以像这样的命令usermod -p '$1$aNwwp0wS$RzSqCt3ntYs.V2TxcXheA' root会使 root 的密码为password.
如果您想以正确的方式执行此操作,您还可以为每个系统生成一个唯一的盐和一个唯一的散列。如果已安装,则可以mkpasswd用于此目的。
$ # create a md5 password has for 'password'
$ echo 'password' | mkpasswd -s -m md5
$1$mJrKn6xs$NTfRbrqbaVzsqcPzyXXt3/
Run Code Online (Sandbox Code Playgroud)
PS 我个人更喜欢将 root 设置为禁用密码,然后使用基于 ssh 密钥的身份验证来访问 root 帐户。您应该能够很容易地为自己构建一个脚本来自动更新根authorized_keys文件。根据您的 SSH 日志级别,您还将看到使用哪个密钥访问 root 帐户,这可能有助于追踪谁破坏了某些东西。
你没有。真的不,不要直接编辑 /etc/shadow。对于 20 个服务器,我可能只是登录并使用 passwd 更改 root 密码。
如果您必须经常这样做,您可以做的是使用Expect并将其放入如下循环中:
for i in `cat <file_with_server_names>`
do
ssh <user>@$i
<expect stuff here>
done
Run Code Online (Sandbox Code Playgroud)
很抱歉我在大约 6 个月内没有使用过脆弱的伪代码。
root 是一个棘手的问题,我个人不喜欢将它与任何外部服务联系起来作为后备计划,以防网络/服务出现故障。通常我会建议 LDAP 或 AD 集成(如果您已经有一个 AD 域!)
Puppet 可以管理用户(以及许多其他的东西)。我会热烈推荐任何拥有超过 3 个服务器的管理员将 puppet 集成到他们的环境中。puppetlabs.com 上的 wiki 有许多文章可以帮助您快速入门和运行。这些优势绝对值得您花时间。考虑一次编写这段代码:
User {"sandra":
ensure => present,
group => ["sysadmin","dba"]
}
Run Code Online (Sandbox Code Playgroud)
...并在给定的时间范围内将其应用于许多服务器。
是的,不要手动编辑您的影子文件:)
还有像 cluster-ssh 这样的软件包,但根据我的经验,虽然有用,但使用这种类型的软件的工作流程在超过 3-4 个服务器时变得不舒服 - 这只是屏幕房地产明智的选择。我什至没有谈论由于服务器文件系统布局的差异(说再见到选项卡完成)、安装的软件包等而出现的各种问题
| 归档时间: |
|
| 查看次数: |
6074 次 |
| 最近记录: |