Forum: Cfengine Help
Subject: Updating shadow encrypted fields
Author: debheller
Link to topic: https://cfengine.com/forum/read.php?3,22438,22438#msg-22438
Here's a bit of a brain-twister for y'all... Say, for example, you maintain a
very large group of Linux servers. All access by users accounts are managed
through SSH keys. But the root account, itself, is a passwd'd account.
All of these systems in this very large group need to have the root password
changed. However, while we might want to use the same passwd for the root
accounts (which can only be logged into from the console - not the network, or
accessed via rights from sudo), we do NOT want to use the same encrypted string
on every system.
This means I need to generate the string on the client. One way I can think of
is to use:
/usr/bin/openssl passwd -1 newpasswdhere
This would generate the appropriate system string like this:
$1$GVn1KByt$1KRkJsBsVXyevjyH9d/WA1
This could then be used in an edit_line (from cf3-tutorial):
"/tmp/shadow" # this will be /etc/shadow when we want to
go live
edit_line => set_user_field("root",2,"$1$PwWfN9MN$4Blm.M3vCE2bUm.H2NXop0");
Is there a better way? Has someone already done this, and if so, would you be
willing to share? I am not sure how to do this - It must be done only once,
and since the encrypted string will be different on each host, you can't check
for a static value that has been replaced on subsequent cf-agent runs. What
would be the best way to know that the change has occurred?
Thoughts?
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine