5 Author: Lorenzo M. Catucci <catucci@ccd.uniroma2.it>
7 Original Author: Free Ekanayaka <free@64studio.com>
13 This file is licensed under the LGPL v2+, like the rest of Augeas.
17 Each line in the gshadow files represents the additional shadow-defined
18 attributes for the corresponding group, as defined in the group file.
26 (************************************************************************
28 *************************************************************************)
31 let comment = Util.comment
32 let empty = Util.empty
37 let sto_to_spc = store Rx.space_in
40 let password = /[A-Za-z0-9_.!*-]*/
41 let integer = Rx.integer
43 (************************************************************************
45 *************************************************************************)
48 let member = [ label "member" . store word ]
50 the member list is a comma separated list of
51 users allowed to chgrp to the group without
52 being prompted for the group's password *)
53 let member_list = Build.opt_list member comma
56 let admin = [ label "admin" . store word ]
58 the admin_list is a comma separated list of
59 users allowed to change the group's password
60 and the member_list *)
61 let admin_list = Build.opt_list admin comma
64 let params = [ label "password" . store password . colon ]
68 let entry = Build.key_value_line word colon params
70 (************************************************************************
72 *************************************************************************)
74 let lns = (comment|empty|entry) *
80 let xfm = transform lns filter