#!/usr/bin/perl # # lcuseradd # # Scott Harrison # October 27, 2000 use strict; # This script is a setuid script that should # be run by user 'www'. It creates a /home/USERNAME directory # as well as a /home/USERNAME/public_html directory. # It adds user entries to # /etc/passwd and /etc/groups. # Passwords are set with lcpasswd. # www becomes a member of this user group. # Standard input usage # First line is USERNAME # Second line is PASSWORD # Third line is PASSWORD # Command-line arguments [USERNAME] [PASSWORD] [PASSWORD] # Yes, but be very careful here (don't pass shell commands) # and this is only supported to allow perl-system calls. # Security $ENV{'PATH'}=""; # Nullify path information. $ENV{'BASH_ENV'}=""; # Nullify shell environment information. # Add user entry to /etc/passwd and /etc/groups in such # a way that www is a member of the user-specific group # useradd [-c comment] [-d home_dir] # [-e expire_date] [-f inactive_time] # [-g initial_group] [-G group[,...]] # [-m [-k skeleton_dir] | -M] [-p passwd] # [-s shell] [-u uid [ -o]] [-n] [-r] login system('/usr/sbin/useradd','-c','LON-CAPA user','-G','www','junk'); # Set password with lcpasswd (which creates smbpasswd entry).