So, clearly augeas is unhappy. Lens excerpts:
let word = /[A-Za-z0-9][A-Za-z0-9_.-]*/
let user = [ label "user" . store word ]
let user_list = Build.opt_list user comma
let params = [ label "password" . store word . colon ]
. [ label "gid" . store integer . colon ]
. user_list?
let entry = Build.key_value_line word colon params
So it looks like gid needs to be an integer and you can't use + as a word.
augtool> ins foo after /files/etc/group/*[last()]
augtool> set /files/etc/group/foo/password bar
augtool> set /files/etc/group/foo/gid 12345
augtool> set /files/etc/group/foo/user[0] baz
augtool> set /files/etc/group/foo/user[0] quux
augtool> print /files/etc/group/foo
Saved 1 file(s)
Hope this helps.
> augtool> print /files/etc/group/foo
> Saved 1 file(s)
Was actually:
augtool> save
Saved 1 file(s)
Okey,
thank you for this information, so augeas cannot handle this type of
requests.