summaryrefslogtreecommitdiff
path: root/groupmanage
diff options
context:
space:
mode:
authorian <ian>2003-06-15 17:57:17 +0000
committerian <ian>2003-06-15 17:57:17 +0000
commit2af9fec9f20de481bafa2f03f86dc8421fc0fee2 (patch)
tree5d42ca5e6c3baa6cf8ded044e83d704cc8495e3e /groupmanage
parent85dbc5e7cd8fd86fe1b35926f58f3589a4c8376e (diff)
downloaduserv-utils-2af9fec9f20de481bafa2f03f86dc8421fc0fee2.tar.gz
reject some of the uxsup changes
Diffstat (limited to 'groupmanage')
-rwxr-xr-xgroupmanage/groupmanage28
1 files changed, 5 insertions, 23 deletions
diff --git a/groupmanage/groupmanage b/groupmanage/groupmanage
index 9d94019..90957fd 100755
--- a/groupmanage/groupmanage
+++ b/groupmanage/groupmanage
@@ -1,10 +1,10 @@
#!/usr/bin/perl
#
-# Copyright (C)1995-9 Ian Jackson <ijackson@chiark.greenend.org.uk>
+# Copyright (C) 1995-9, 2003 Ian Jackson <ijackson@chiark.greenend.org.uk>
# Copyright (C) 1999, 2003
-# Chancellor Masters and Scholars of the University of Cambridge
+# Chancellor Masters and Scholars of the University of Cambridge
#
-# Hacked by Ben Harris <bjh21@cam.ac.uk> in 1999 and 2003 for Unix
+# Improved by Ben Harris <bjh21@cam.ac.uk> in 1999 and 2003 for Unix
# Support's own nefarious purposes.
#
# This is free software; you can redistribute it and/or modify it
@@ -61,7 +61,6 @@ $groupname =~ m/^\w[-0-9A-Za-z]*$/ ||
@ARGV || push(@ARGV,'--info');
$callinguser= exists $ENV{'USERV_UID'} ? $ENV{'USERV_UID'} : $<;
-$callingname = exists $ENV{'USERV_USER'} ? $ENV{'USERV_USER'} : getpwuid($<);
%opt= ('user-create','0',
'user-create-minunameu','5',
@@ -148,8 +147,6 @@ END
if ($ARGV[0] eq '--create') {
$opt{'user-create'} || !$callinguser ||
- ($opt{'admin-group'} &&
- (getgrnam($opt{'admin-group'}))[3] =~ /(^| )$callingname( |$)/) ||
&quit("group creation by users disabled by administrator");
length($groupname) <= 8 || &quit("group names must be 8 chars or fewer");
$!=0; (@pw= getpwuid($callinguser))
@@ -194,8 +191,6 @@ if ($create) {
}
&weare($owner) || grep(&weare($_),@managers) || !$callinguser ||
- ($opt{'admin-group'} &&
- (getgrnam($opt{'admin-group'}))[3] =~ /(^| )$callingname( |$)/) ||
&quit("you may not manage $groupname");
$action= 'none';
@@ -268,7 +263,7 @@ $grouplist[$grouplistix]=
&save($opt{'group-file'},@groupfile);
&save($opt{'grouplist-file'},@grouplist);
if ($opt{'finish-command'}) {
- !system($opt{'finish-command'}) || &quit("finish-command: $!");
+ !system($opt{'finish-command'}) || &quit("finish-command: $?");
}
unlink($opt{'gtmp-file'}) || &quit("unlock group (remove gtmp): $!");
&p_out;
@@ -340,20 +335,7 @@ sub quit {
}
sub lock {
- # NFS-safe Locking per Linux open(2)
- my($hostname) = `hostname`;
- chomp($hostname);
- my($hitching_post) = "$opt{'gtmp-file'}.$hostname.$$";
- open(LOCK, ">$hitching_post") || die "$hitching_post: $!";
- close(LOCK);
- link($hitching_post, $opt{'gtmp-file'});
- if ((stat($hitching_post))[3] != 2) {
- close(OUT);
- unlink($hitching_post);
- &quit("group file locked -- giving up...");
- }
- unlink($hitching_post);
-# link($opt{'group-file'},$opt{'gtmp-file'}) || &quit("create gtmp: $!");
+ link($opt{'group-file'},$opt{'gtmp-file'}) || &quit("create gtmp: $!");
$locked++;
}