Re: delete user in group script

Previous thread: csup cannot connect by Friedrich Locke on Tuesday, December 14, 2010 - 1:06 am. (2 messages)

Next thread: 24grammata e-Magazine (Language - History - Culture) by 24grammata on Tuesday, December 14, 2010 - 5:46 am. (1 message)
From: OpenBSD Geek
Date: Tuesday, December 14, 2010 - 4:31 am

Hi,

After posted many requests on how to remove user from a group, i choosed
to build my own script.
And it works very fine.

if [ $1 ] & [ $2 ]; then
cp /etc/group /tmp
cat /tmp/group | grep ^$2 > /tmp/onlygroup
cat /tmp/group | grep -v ^$2 > /tmp/nogroup
cat /tmp/onlygroup | sed "s/$1//g" | \
        sed "s/ /,/g" | sed "s/,,/,/g" | sed "s/,$//g" > /tmp/newgroup
cat /tmp/newgroup >> /tmp/nogroup
cat /dev/null > /tmp/group
cat /tmp/nogroup >> /tmp/group
cp /tmp/group /etc
chmod 644 /etc/group
chown root /etc/group
chgrp wheel /etc/group
rm -f /tmp/*
echo "Success."
else
echo "Remove user from a group"
echo "Use : sh duig user group"
fi

Cheers,

Wesley MOUEDINE ASSABY
www.mouedine.net 

From: Otto Moerbeek
Date: Tuesday, December 14, 2010 - 4:48 am

I'm getting a case of nausea here.

	-Otto

From: Markus Hennecke
Date: Tuesday, December 14, 2010 - 4:56 am

You really deserve the Useless Use of Cat Award.
And the race condition award, and the nuke the wrong file award, and...

Kind regards,
   Markus

From: OpenBSD Geek
Date: Tuesday, December 14, 2010 - 5:01 am

From: Markus Hennecke
Date: Tuesday, December 14, 2010 - 5:16 am

Tomas already pointed out where this will blow up for sure.

Hint: Take a look at mktemp(1) and install(1) to weed out the worst 
issues.

Kind regards,
   Markus

From: Jean-Francois Simon
Date: Tuesday, December 28, 2010 - 4:25 pm

... did'nt know there were such many tools,thanks.

From: Tomas Bodzar
Date: Tuesday, December 14, 2010 - 4:58 am

On Tue, Dec 14, 2010 at 12:31 PM, OpenBSD Geek <openbsd@e-solutions.re>

very "secure" step when you have some temporary files from daemons

From: Jan Stary
Date: Tuesday, December 14, 2010 - 5:31 am

Among other hilariously horrible things,

You just nuked everybody's tempfiles.

From: Leonardo Rodrigues
Date: Tuesday, December 14, 2010 - 2:00 pm

Ok! Here goes my contribution to this thread!

# $1=group
# $2=user

cd /etc
cat ./group \
        | sed '/'$1'/ s/'$2'//' \
        | sed '/'$1'/ s/,,/,/' \
        | sed '/'$1'/ s/,$//' \
        | sed '/'$1'/ s/:,/:/' > group.new

mv /etc/group.new /etc/group
chown root.wheel /etc/group
chmod 644 /etc/group
exit 0



From: Ted Unangst
Date: Tuesday, December 14, 2010 - 2:14 pm

On Tue, Dec 14, 2010 at 4:00 PM, Leonardo Rodrigues

A) root:wheel is better.
B) it's a bad idea to fix the permissions of a file after installing it.

From: Adriaan
Date: Tuesday, December 14, 2010 - 3:30 pm

On Tue, Dec 14, 2010 at 10:00 PM, Leonardo Rodrigues

My take ;)

# -------------------------
FILE=/etc/group
FILE=group

install ${FILE} ${FILE}.orig

sed -e "/$1/s/$2//" \
    -e "/$1/s/,,/,/" \
    -e "/$1/s/,$//" \
    -e "/$1/s/:,/:/"   ${FILE}.orig > ${FILE}

# ----------------------------

Adriaan

From: Jan Stary
Date: Wednesday, December 15, 2010 - 8:15 am

Hm, that's a nice one too: for every line in /etc/group that contains '$1',

From: Alexander Hall
Date: Wednesday, December 15, 2010 - 9:31 pm

This must be the most horrible thread ever in terms of scripting and
sh/ksh (ab)use I've ever seen.

Please, folks, don't consider using anything posted in this thread, or
god will start killing kittens.



Previous thread: csup cannot connect by Friedrich Locke on Tuesday, December 14, 2010 - 1:06 am. (2 messages)

Next thread: 24grammata e-Magazine (Language - History - Culture) by 24grammata on Tuesday, December 14, 2010 - 5:46 am. (1 message)