[LON-CAPA-cvs] cvs: loncom / lcuseradd lond
www
www at source.lon-capa.org
Mon Oct 24 17:30:09 EDT 2011
www Mon Oct 24 21:30:09 2011 EDT
Modified files:
/loncom lcuseradd lond
Log:
Bug #1320: NOT SURE IF THIS IS NEEDED ANYMORE
If we don't support UNIX accounts anymore,
we should remove calls to lcuseradd from lond
Index: loncom/lcuseradd
diff -u loncom/lcuseradd:1.41 loncom/lcuseradd:1.42
--- loncom/lcuseradd:1.41 Wed Mar 28 20:43:37 2007
+++ loncom/lcuseradd Mon Oct 24 21:30:09 2011
@@ -6,7 +6,7 @@
# with adding a user with filesystem privileges (e.g. author)
#
#
-# $Id: lcuseradd,v 1.41 2007/03/28 20:43:37 albertel Exp $
+# $Id: lcuseradd,v 1.42 2011/10/24 21:30:09 www Exp $
###
###############################################################################
@@ -49,9 +49,10 @@
#
# Standard input (STDIN) usage
# First line is USERNAME
-# Second line is PASSWORD
+# Second line is DOMAIN
# Third line is PASSWORD
-# Fouth line is the name of a file to which an error code will be written.
+# Fourth line is PASSWORD
+# Fifth line is the name of a file to which an error code will be written.
# If the fourth line is omitted, no error file will be written.
# In either case, the program Exits with the code as its Exit status.
# The error file will just be a single line containing an
@@ -59,7 +60,7 @@
#
#
#
-# Command-line arguments [USERNAME] [PASSWORD] [PASSWORD]
+# Command-line arguments [USERNAME] [DOMAIN] [PASSWORD] [PASSWORD]
# Yes, but be very careful here (don't pass shell commands)
# and this is only supported to allow perl-system calls.
#
@@ -82,7 +83,7 @@
# Usage within code
#
# $Exitcode=
-# system("/home/httpd/perl/lcuseradd","NAME","PASSWORD1","PASSWORD2")/256;
+# system("/home/httpd/perl/lcuseradd","NAME","DOMAIN","PASSWORD1","PASSWORD2")/256;
# print "uh-oh" if $Exitcode;
# ---------------------------------------------------- Description of functions
@@ -162,13 +163,15 @@
foreach (@input) {chomp;}
}
-my ($username,$password1,$password2, $error_file)=@input;
+my ($username,$domain,$password1,$password2, $error_file)=@input;
print "Username = ".$username."\n" unless $noprint;
$username=~/^(\w+)$/;
print "Username after substitution - ".$username unless $noprint;
my $safeusername=$1;
print "Safe username = $safeusername \n" unless $noprint;
+print "Domain = ".$domain."\n" unless $noprint;
+
if (($username ne $safeusername) or ($safeusername!~/^[A-Za-z]/)) {
print "Error. The user name specified $username $safeusername has invalid characters.\n"
unless $noprint;
@@ -317,36 +320,17 @@
}
# ------------------------------ Make final modifications to the user directory
-# -- Add a public_html file with a stand-in index.html file
-
-if (-d "/home/$safeusername") {
- system('/bin/chmod','-R','0660',"/home/$safeusername");
- system('/bin/chmod','0710',"/home/$safeusername");
- mkdir "/home/$safeusername/public_html",0755;
- open OUT,">/home/$safeusername/public_html/index.html";
- print OUT<<END;
-<html>
-<head>
-<title>$safeusername</title>
-</head>
-<body>
-<h1>Construction Space</h1>
-<h3>$safeusername</h3>
-</body>
-</html>
-END
-close OUT;
+# -- Add a construction space
+
+my $path="/home/httpd/html/priv/".$domain;
+unless (-e $path) {
+ mkdir($path);
+}
+unless (-e $path.'/'.$safeusername) {
+ mkdir($path.'/'.$safeusername);
}
-#
-# In order to allow the loncapa daemons appropriate access
-# to public_html, Top level and public_html directories should
-# be owned by safeusername:safeusername as should the smaple index.html..
-print "lcuseradd ownership\n" unless $noprint;
-system('/bin/chown','-R',"$safeusername:$safeusername","/home/$safeusername"); # First set std ownership on everything.
-&set_public_html_permissions("/home/$safeusername/public_html");
-# system('/bin/chown',"$safeusername:www","/home/$safeusername"); # Now adust top level...
-# system('/bin/chown','-R',"$safeusername:www","/home/$safeusername/public_html"); # And web dir.
+
# ---------------------------------------------------- Gracefull Apache Restart
my $pidfile;
if (-e '/var/run/httpd.pid') {
@@ -450,35 +434,6 @@
print "\n" unless $noprint;
}
-#
-# Set up the correct permissions for all files in the
-# user's public htmldir. We just do a chmod -R 0660 ... for
-# the ordinary files. The we use File::Find
-# to pop through the directory tree changing directories only
-# to 02770:
-#
-sub set_public_html_permissions {
- my ($topdir) = @_;
-
- # Set the top level dir permissions (I'm not sure if find
- # will enumerate it specifically), correctly and all
- # files and dirs to the 'ordinary' file permissions:
-
- system("chmod -R 0660 $topdir");
- chmod(02770, $topdir);
-
- # Now use find to locate all directories under $topdir
- # and set their modes to 02770...
- #
- print "Find file\n " unless $noprint;
- File::Find::find({"untaint" => 1,
- "untaint_pattern" => qr(/^(.*)$/),
- "untaint_skip" => 1,
- "no_chdir" => 1,
- "wanted" => \&set_permission }, "$topdir");
-
-
-}
#-------------------------- Exit...
#
Index: loncom/lond
diff -u loncom/lond:1.482 loncom/lond:1.483
--- loncom/lond:1.482 Mon Oct 24 20:43:51 2011
+++ loncom/lond Mon Oct 24 21:30:09 2011
@@ -2,7 +2,7 @@
# The LearningOnline Network
# lond "LON Daemon" Server (port "LOND" 5663)
#
-# $Id: lond,v 1.482 2011/10/24 20:43:51 www Exp $
+# $Id: lond,v 1.483 2011/10/24 21:30:09 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -60,7 +60,7 @@
my $status='';
my $lastlog='';
-my $VERSION='$Revision: 1.482 $'; #' stupid emacs
+my $VERSION='$Revision: 1.483 $'; #' stupid emacs
my $remoteVERSION;
my $currenthostid="default";
my $currentdomainid;
@@ -2073,7 +2073,7 @@
."makeuser";
}
unless ($fperror) {
- my $result=&make_passwd_file($uname, $umode,$npass, $passfilename);
+ my $result=&make_passwd_file($uname,$udom,$umode,$npass, $passfilename);
&Reply($client,\$result, $userinput); #BUGBUG - could be fail
} else {
&Failure($client, \$fperror, $userinput);
@@ -2148,7 +2148,7 @@
&Failure($client, \$result);
}
} else {
- my $result=&make_passwd_file($uname, $umode,$npass,$passfilename);
+ my $result=&make_passwd_file($uname,$udom,$umode,$npass,$passfilename);
#
# If the current auth mode is internal, and the old auth mode was
# unix, or krb*, and the user is an author for this domain,
@@ -7281,7 +7281,7 @@
sub make_passwd_file {
- my ($uname, $umode,$npass,$passfilename)=@_;
+ my ($uname,$udom,$umode,$npass,$passfilename)=@_;
my $result="ok";
if ($umode eq 'krb4' or $umode eq 'krb5') {
{
@@ -7322,7 +7322,7 @@
#
my $uid = getpwnam($uname);
if((defined $uid) && ($uid == 0)) {
- &logthis(">>>Attempted to create privilged account blocked");
+ &logthis(">>>Attempt to create privileged account blocked");
return "no_priv_account_error\n";
}
@@ -7334,6 +7334,7 @@
&Debug("user = ".$uname.", Password =". $npass);
my $se = IO::File->new("|$execpath > $perlvar{'lonDaemons'}/logs/lcuseradd.log");
print $se "$uname\n";
+ print $se "$udom\n";
print $se "$npass\n";
print $se "$npass\n";
print $se "$lc_error_file\n"; # Status -> unique file.
More information about the LON-CAPA-cvs
mailing list