Added "ceoquery", a utility to retrieve lists of members and users.
This commit is contained in:
parent
8815949899
commit
bb84794a27
|
@ -0,0 +1,76 @@
|
|||
#!/usr/bin/python2.4 --
|
||||
"""
|
||||
ceoquery - a script to lookup member and account information
|
||||
"""
|
||||
import os, sys
|
||||
|
||||
safe_environment = ['LOGNAME', 'USERNAME', 'USER', 'HOME', 'TERM', 'LANG'
|
||||
'LC_ALL', 'LC_COLLATE', 'LC_CTYPE', 'LC_MESSAGE', 'LC_MONETARY',
|
||||
'LC_NUMERIC', 'LC_TIME', 'UID', 'GID', 'SSH_CONNECTION', 'SSH_AUTH_SOCK',
|
||||
'SSH_CLIENT']
|
||||
|
||||
for key in os.environ.keys():
|
||||
if key not in safe_environment:
|
||||
del os.environ[key]
|
||||
|
||||
os.environ['PATH'] = '/bin:/usr/bin'
|
||||
|
||||
for dir in sys.path[:]:
|
||||
if not dir.find('/usr') == 0:
|
||||
while dir in sys.path:
|
||||
sys.path.remove(dir)
|
||||
|
||||
from csc.adm import members, terms
|
||||
|
||||
try:
|
||||
members.connect()
|
||||
except Exception, e:
|
||||
print "ceoquery: %s" % e
|
||||
sys.exit(1)
|
||||
|
||||
def usage():
|
||||
print "Usage: ceoquery memberlist|booklist|allmembers|allusers|termusers"
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
usage()
|
||||
|
||||
elif sys.argv[1] == 'memberlist':
|
||||
|
||||
current_term = terms.current()
|
||||
members = members.list_term(current_term)
|
||||
for member in members:
|
||||
print "%(memberid)s|%(name)s|%(program)s|%(userid)s" % member
|
||||
|
||||
elif sys.argv[1] == 'allmembers':
|
||||
|
||||
members = members.list_all()
|
||||
for member in members:
|
||||
print "%(memberid)s|%(name)s|%(program)s|%(userid)s" % member
|
||||
|
||||
elif sys.argv[1] == 'booklist':
|
||||
|
||||
pass
|
||||
|
||||
elif sys.argv[1] == 'allusers':
|
||||
|
||||
members = members.list_all()
|
||||
for member in members:
|
||||
if member['userid']:
|
||||
print member['userid']
|
||||
|
||||
elif sys.argv[1] == 'termusers':
|
||||
|
||||
if len(sys.argv) > 2:
|
||||
term = sys.argv[2]
|
||||
else:
|
||||
term = terms.current()
|
||||
|
||||
members = members.list_term(term)
|
||||
for member in members:
|
||||
if member['userid']:
|
||||
print member['userid']
|
||||
|
||||
else:
|
||||
|
||||
usage()
|
||||
|
|
@ -6,9 +6,11 @@ case "$1" in
|
|||
if getent passwd ceo > /dev/null; then
|
||||
CEO=ceo
|
||||
SUID=4750
|
||||
SUIDALL=4755
|
||||
else
|
||||
CEO=root
|
||||
SUID=755
|
||||
SUIDALL=755
|
||||
fi
|
||||
|
||||
if getent group office > /dev/null; then
|
||||
|
@ -25,6 +27,10 @@ case "$1" in
|
|||
dpkg-statoverride --add --update root $OFFICE $SUID /usr/bin/addhomedir
|
||||
fi
|
||||
|
||||
if ! dpkg-statoverride --list /usr/bin/ceoquery > /dev/null; then
|
||||
dpkg-statoverride --add --update $CEO $OFFICE $SUIDALL /usr/bin/ceoquery
|
||||
fi
|
||||
|
||||
if [ -f /etc/csc/ldap.cf ] && ! dpkg-statoverride --list /etc/csc/ldap.cf > /dev/null; then
|
||||
dpkg-statoverride --add --update $CEO staff 640 /etc/csc/ldap.cf
|
||||
fi
|
||||
|
|
|
@ -11,6 +11,10 @@ case "$1" in
|
|||
dpkg-statoverride --remove /usr/bin/addhomedir || true
|
||||
fi
|
||||
|
||||
if dpkg-statoverride --list /usr/bin/ceoquery > /dev/null; then
|
||||
dpkg-statoverride --remove /usr/bin/ceoquery || true
|
||||
fi
|
||||
|
||||
if dpkg-statoverride --list /etc/csc/ldap.cf > /dev/null; then
|
||||
dpkg-statoverride --remove /etc/csc/ldap.cf || true
|
||||
fi
|
||||
|
|
|
@ -8,6 +8,7 @@ build-stamp:
|
|||
mkdir build
|
||||
$(CC) -DFULL_PATH='"/usr/lib/csc/ceo"' -o build/ceo misc/setuid-prog.c
|
||||
$(CC) -DFULL_PATH='"/usr/lib/csc/addhomedir"' -o build/addhomedir misc/setuid-prog.c
|
||||
$(CC) -DFULL_PATH='"/usr/lib/csc/ceoquery"' -o build/ceoquery misc/setuid-prog.c
|
||||
touch build-stamp
|
||||
|
||||
clean:
|
||||
|
@ -28,8 +29,8 @@ install: build
|
|||
dh_install etc/* etc/csc/
|
||||
dh_install sql/* usr/share/csc/
|
||||
|
||||
dh_install bin/ceo bin/addhomedir usr/lib/csc/
|
||||
dh_install build/ceo build/addhomedir usr/bin/
|
||||
dh_install bin/ceo bin/addhomedir bin/ceoquery usr/lib/csc/
|
||||
dh_install build/ceo build/addhomedir build/ceoquery usr/bin/
|
||||
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
|
|
Loading…
Reference in New Issue