

...making Linux just a little more fun!
Rick Moen [rick at linuxmafia.com]
Now, there is a BOfH!
----- Forwarded message from Rory Browne <rbmlist@gmail.com> -----
Date: Wed, 12 Mar 2008 17:24:44 +0000 From: Rory Browne <rbmlist@gmail.com> To: Irish Linux Users Group <ilug@linux.ie> Subject: Re: [ILUG] shell users/scripters, how do you script yours?On Wed, Mar 12, 2008 at 2:39 PM, Gavin McCullagh <gmccullagh@gmail.com> wrote:
> Hi, > > On Wed, 12 Mar 2008, Rory Browne wrote: > > > Returning to the topic, I wouldn't worry too much about executing ls > > once. I think it only becomes a problem when you run an executable > > inside a loop that repeats a lot. > > Fair point, though the fact that a file called "some file" will be treated > as two files called "some" and "file" would be my concern. >
I have a procedure for dealing with when my users put spaces in their filenames.
find / -name '* *' -exec ls -l {} \;
Taking the third column in the output, you get the username, which you can then pipe to ps -u -o pid | xargs -i kill -9 {}
This gives you the list of users with spaces. Some manipulation with Awk, or Perl, can turn this into a list of usernames prefixed with userdel -r, which can then be piped to /bin/sh.
After you've finished deleting your accounts, you can then hire a hitman to ensure that they never receive accounts on any of your systems again.
-- Irish Linux Users' Group mailing list About this list : http://mail.linux.ie/mailman/listinfo/ilug Who we are : http://www.linux.ie/ Where we are : http://www.linux.ie/map/
Ben Okopnik [ben at linuxgazette.net]
On Wed, Mar 12, 2008 at 10:36:44AM -0700, Rick Moen wrote:
> Now, there is a BOfH!
>
> ----- Forwarded message from Rory Browne <rbmlist@gmail.com> -----
>
> Date: Wed, 12 Mar 2008 17:24:44 +0000
> From: Rory Browne <rbmlist@gmail.com>
> To: Irish Linux Users Group <ilug@linux.ie>
> Subject: Re: [ILUG] shell users/scripters, how do you script yours?
>
> On Wed, Mar 12, 2008 at 2:39 PM, Gavin McCullagh <gmccullagh@gmail.com> wrote:
> > Hi,
> >
> > On Wed, 12 Mar 2008, Rory Browne wrote:
> >
> > > Returning to the topic, I wouldn't worry too much about executing ls
> > > once. I think it only becomes a problem when you run an executable
> > > inside a loop that repeats a lot.
> >
> > Fair point, though the fact that a file called "some file" will be treated
> > as two files called "some" and "file" would be my concern.
> >
>
> I have a procedure for dealing with when my users put spaces in their filenames.
>
> find / -name '* *' -exec ls -l {} \;
I'd say that he fell short of the holy title of BOfH - specifically on the 'O' qualifier - as well as instantly qualifying for the Darwin Award.
ben@Tyr:~$ find /usr/share -name '* *' -exec stat -c %U {} \;
root
root
root
root
root
root
root
root
root
The above means that he just killed himself. Perhaps he meant to say "find /home/ -name '* *' -exec ls -l {} \;" instead of "find / -name '* *' -exec ls -l {} \;" ... but Unix isn't very forgiving of anyone who runs untested scripts on a live system - especially when they use the "--send-the-assassins" option of "userdel". [sigh] Sad but true.
> Taking the third column in the output, you get the username, which you
> can then pipe to ps -u -o pid | xargs -i kill -9 {}
You don't need any of that; see below.
> This gives you the list of users with spaces. Some manipulation with > Awk, or Perl, can turn this into a list of usernames prefixed with > userdel -r, which can then be piped to /bin/sh.
# "sort -u" will produce a unique list
find / -name '* *' -exec stat -c %U {} \; | sort -u | xargs userdel -r
...a.k.a. "autoDarwination".
> After you've finished deleting your accounts, you can then hire a > hitman to ensure that they never receive accounts on any of your > systems again.
Poor Rory. Such a fine man - so generous with his advice... only made
the one tiny, innocent mistake in his life... [sob] Break out the
whiskey, lads, and we'll remember him properly.
-- * Ben Okopnik * Editor-in-Chief, Linux Gazette * http://LinuxGazette.NET *