Forum: CFEngine Help
Subject: Ownership issue with output files
Author: bijohnvincent
Link to topic: https://cfengine.com/forum/read.php?3,24996,24996#msg-24996

Hi I am newbie to cfengine. It would be great if anyone can help me to resolve 
the issue.

I have developed a cfengine script to add new users with their priv/pub keys 
along with password. 

If I run the script manually "cf-agent -K -f ~/.cf", permission of the file is 
644 and owner/group is root.; as below.
# ll /home/UsErNaMe/.ssh/
total 8
-rw-r--r--. 1 root root  397 Feb 23 12:35 authorized_keys
-rw-r--r--. 1 root root 1671 Feb 23 12:35 id_rsa

and if I put the scipt on 'masterfiles' dir, permission is 600; as below.
# ll /home/UsErNaMe/.ssh/
total 8
-rw-------. 1 root root  397 Feb 23 12:50 authorized_keys
-rw-------. 1 root root 1671 Feb 23 12:50 id_rsa

The expected output:
# ll /home/UsErNaMe/.ssh/
total 8
-rw-------. 1 UsErNaMe UsErNaMe  397 Feb 23 12:50 authorized_keys
-rw-------. 1 UsErNaMe UsErNaMe 1671 Feb 23 12:50 id_rsa

Also it seems that the cf script is being executed at frequent intervals even 
if the script is not modified. 

-----------------------------------------------------------------------------------------------------------------
Part of the script is as below.

body common control
{
bundlesequence => { "manage_users" };
inputs => { "/var/cfengine/inputs/cfengine_stdlib.cf" };
}

bundle agent create_ssh_dir(user)
{
vars:
        "index" slist => getindices("$(user)");
classes:
        "create_dir" expression => userexists("$(index)");
commands:
        create_dir::
                "/bin/rm -rf /$($(user)[$(index)])/.ssh/authorized_keys";
                "/bin/rm -rf /$($(user)[$(index)])/.ssh/id_rsa";
files:
       linux::
               "$($(user)[$(index)])/.ssh/."
               perms => mug("700","$(index)","$(index)"),
               move_obstructions => "true",
               create => "true";

               "$($(user)[$(index)])/.ssh/authorized_keys"
               perms => mug("600","$(index)","$(index)"),
               move_obstructions => "true",
               create => "true";

               "$($(user)[$(index)])/.ssh/id_rsa"
               perms => mug("600","$(index)","$(index)"),
               move_obstructions => "true",
               create => "true";
reports:
        linux::
                "$($(user)[$(index)])"
                report_to_file => "$($(user)[$(index)])/.ssh/authorized_keys";

                "$($(user)[$(index)])"
                report_to_file => "$($(user)[$(index)])/.ssh/id_rsa";
}

body perms mug(mode,user,group)
{
owners => { "$(user)" };
groups => { "$(group)" };
mode   => "$(mode)";
}

bundle agent manage_users
{
vars:
  # Users to create
  "users"  string => "UsErS_FuLlNaMe_HeRe";
  "users"       string => "";
  "users"       string => "";
  "users"      string => "/home/UsErNaMe";
  "users"     string => "/bin/bash";
  "users"     string => "-m";
  "users"  string => "EnCrYpTeD_PAssWord_hErE";
  "users"     string => "This_is_A_Sample_PUBLIC_KEY";
  "users"     string => "This_is_a_Sample_PRIVATE_KEY";

methods:
  "users"   usebundle => create_ssh_dir("manage_users.users");
}

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to