http://qs321.pair.com?node_id=686122


in reply to Adding a new user to all groups where another user is

bronto,
perl -F: -i.save -ape 'if ($F[3] =~ m{bronto} and not m{robin}) { chom +p ; $_ .= qq{,robin\n} }' /etc/group

The first thing I see wrong with this is that you ignore the possibility that one user name may be contained within another. For instance - jon and jonathan.

The second thing I see wrong is that you don't consider that a user's primary group need not be specified in /etc/group if it is present in /etc/passwd. For instance - bronto may belong to group 123 but not appear in group 123's line in /etc/group. At least on some *nix - which would mean 'robin' didn't end up in all groups as 'bronto'.

The last thing is, your documentation is lacking. I know what -i.save does but would everyone who used it? What if someone made a typo - would they know how to undo it?

Cheers - L~R

Replies are listed 'Best First'.
Just a memo and a hint... [Re^2: Adding a new user to all groups where another user is]
by bronto (Priest) on May 17, 2008 at 12:56 UTC

    Hi!

    Yep, every single byte you wrote is plain right. Thanks for taking the time to read and comment this node.

    I sometimes need to solve problems, like the one above, that require me a one-liner solution. When it happens, I often save the one liner in a file for future use, along with a very short comment to remind me what I wrote it for.

    I Often won't use it again as-is, but at least I have a good starting point for the next time.

    Basically, I did the same thing, publishing this one here instead of just saving it locally. So... have fun! :-)

    Ciao!
    --bronto


    In theory, there is no difference between theory and practice. In practice, there is.