Forum: Cfengine Help
Subject: Setting perms on home directory files
Author: RIngersoll
Link to topic: https://cfengine.com/forum/read.php?3,17127,17127#msg-17127

I have a requirement to ensure that all files in a user's home directory are 
owned by the owner of the home directory and have permissions no greater than 
750.

One method I'm playing with is to read /etc/passwd into an array:


bundle agent test
{
vars:
         "HomeDirn"      int     => readstringarray(
                                "HomeDir",
                                "/etc/passwd",
                                "#[^\n]*",
                                ":",
                                "200",
                                "10000"
                                );

        "HomeUsr"       slist   => getindices("HomeDir");

files:
        "$(HomeDir[$(HomeUsr)][5])"
                perms           => 
mog("o-rwx,g-w","$(HomeDir[$(HomeUsr)][2])","$(HomeDir[$(HomeUsr)][3])"),
                depth_search    => recurse("inf");
}


This works but I don't want to set perms on every directory and user in 
/etc/passwd.  I need a way to filter out system and shared accounts so I only 
process user accounts.  The filtering could be based on a uid or gid range or 
on the home directory path (all user directories can be identified by their 
path name, e.g., /home/dba/*, /home/cmo/*, /home/admin/*, etc.).

Anyone have a suggestion on how to filter /etc/passwd?  A grep function?  Or 
maybe there's a better way to approach this requirement?

Community 3.0.4

Thanks.

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

Reply via email to