[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