Fixed huge bug in create homedirs
Did't check if File/Path allready exists
This commit is contained in:
parent
2e4baad5c7
commit
01a0b4bea0
|
@ -355,25 +355,36 @@ function checksamba($values, $type) { // This function checks all samba account
|
||||||
if ((!$values->smb_smbuserworkstations=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[.]|[-])+(([,])+([a-z]|[A-Z]|[0-9]|[.]|[-])+)*$', $values->smb_smbuserworkstations))
|
if ((!$values->smb_smbuserworkstations=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[.]|[-])+(([,])+([a-z]|[A-Z]|[0-9]|[.]|[-])+)*$', $values->smb_smbuserworkstations))
|
||||||
$errors[] = array('ERROR', _('User Workstations'), _('User Workstations is invalid.'));
|
$errors[] = array('ERROR', _('User Workstations'), _('User Workstations is invalid.'));
|
||||||
$return->smb_flagsW = 0;
|
$return->smb_flagsW = 0;
|
||||||
|
if ((!$values->smb_domain=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[-])+$', $values->smb_domain))
|
||||||
|
$errors[] = array('ERROR', _('Domain Name'), _('Domain Name contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and -.'));
|
||||||
|
if ($values->smb_useunixpwd) $return->smb_useunixpwd = 1; else $return->smb_useunixpwd = 0;
|
||||||
|
if ($values->smb_pwdcanchange) $return->smb_pwdcanchange = 1; else $return->smb_pwdcanchange = 0;
|
||||||
|
if ($values->smb_pwdmustchange) $return->smb_pwdmustchange = 1; else $return->smb_pwdmustchange = 0;
|
||||||
|
if ($values->smb_password) {
|
||||||
|
// Encrypt password
|
||||||
|
$return->smb_password = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $values->smb_password,
|
||||||
|
MCRYPT_MODE_ECB, $iv));
|
||||||
|
}
|
||||||
|
else $return->smb_password = "";
|
||||||
break;
|
break;
|
||||||
case 'host' :
|
case 'host' :
|
||||||
$return->smb_password = $values->unix_password;
|
$return->smb_password = $values->unix_password;
|
||||||
$return->smb_flagsW = 1;
|
$return->smb_flagsW = 1;
|
||||||
|
if ((!$values->smb_domain=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[-])+$', $values->smb_domain))
|
||||||
|
$errors[] = array('ERROR', _('Domain Name'), _('Domain Name contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and -.'));
|
||||||
|
if ($values->smb_useunixpwd) $return->smb_useunixpwd = 1; else $return->smb_useunixpwd = 0;
|
||||||
|
if ($values->smb_pwdcanchange) $return->smb_pwdcanchange = 1; else $return->smb_pwdcanchange = 0;
|
||||||
|
if ($values->smb_pwdmustchange) $return->smb_pwdmustchange = 1; else $return->smb_pwdmustchange = 0;
|
||||||
|
if ($values->smb_password) {
|
||||||
|
// Encrypt password
|
||||||
|
$return->smb_password = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $values->smb_password,
|
||||||
|
MCRYPT_MODE_ECB, $iv));
|
||||||
|
}
|
||||||
|
else $return->smb_password = "";
|
||||||
break;
|
break;
|
||||||
case 'group' :
|
case 'group' :
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((!$values->smb_domain=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[-])+$', $values->smb_domain))
|
|
||||||
$errors[] = array('ERROR', _('Domain Name'), _('Domain Name contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and -.'));
|
|
||||||
if ($values->smb_useunixpwd) $return->smb_useunixpwd = 1; else $return->smb_useunixpwd = 0;
|
|
||||||
if ($values->smb_pwdcanchange) $return->smb_pwdcanchange = 1; else $return->smb_pwdcanchange = 0;
|
|
||||||
if ($values->smb_pwdmustchange) $return->smb_pwdmustchange = 1; else $return->smb_pwdmustchange = 0;
|
|
||||||
if ($values->smb_password) {
|
|
||||||
// Encrypt password
|
|
||||||
$return->smb_password = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $values->smb_password,
|
|
||||||
MCRYPT_MODE_ECB, $iv));
|
|
||||||
}
|
|
||||||
else $return->smb_password = "";
|
|
||||||
// Return values and errors
|
// Return values and errors
|
||||||
if (!$errors) return array($return);
|
if (!$errors) return array($return);
|
||||||
else return array($return, $errors);
|
else return array($return, $errors);
|
||||||
|
|
|
@ -107,18 +107,22 @@ if ($found==true) {
|
||||||
my $path = $user[7];
|
my $path = $user[7];
|
||||||
$path =~ s,/(?:[^/]*)$,,;
|
$path =~ s,/(?:[^/]*)$,,;
|
||||||
($<, $>) = ($>, $<); # Get root privileges
|
($<, $>) = ($>, $<); # Get root privileges
|
||||||
system 'mkdir', '-m 755', '-p', $path; # Create paths to homedir
|
if (! -e $path) {
|
||||||
system 'mkdir', '-m 700', $user[7]; # Create himdir itself
|
system 'mkdir', '-m 755', '-p', $path; # Create paths to homedir
|
||||||
system "cp -a /etc/skel/* /etc/skel/.[^.]* $user[7]"; # Copy /etc/sekl into homedir
|
system 'mkdir', '-m 700', $user[7]; # Create himdir itself
|
||||||
system 'chown', '-R', "$user[2]:$user[3]" , $user[7]; # Change owner to new user
|
system "cp -a /etc/skel/* /etc/skel/.[^.]* $user[7]"; # Copy /etc/sekl into homedir
|
||||||
system '/usr/sbin/useradd.local', $user[0]; # run useradd-script
|
system 'chown', '-R', "$user[2]:$user[3]" , $user[7]; # Change owner to new user
|
||||||
|
system '/usr/sbin/useradd.local', $user[0]; # run useradd-script
|
||||||
|
}
|
||||||
($<, $>) = ($>, $<); # Give up root previleges
|
($<, $>) = ($>, $<); # Give up root previleges
|
||||||
last switch2;
|
last switch2;
|
||||||
};
|
};
|
||||||
$vals[4] eq 'rem' && do {
|
$vals[4] eq 'rem' && do {
|
||||||
($<, $>) = ($>, $<); # Get root previliges
|
($<, $>) = ($>, $<); # Get root previliges
|
||||||
system 'rm', '-R', $user[7]; # Delete Homedirectory
|
if (-d $user[7]) {
|
||||||
system '/usr/sbin/userdel.local', $user[0];
|
system 'rm', '-R', $user[7]; # Delete Homedirectory
|
||||||
|
system '/usr/sbin/userdel.local', $user[0];
|
||||||
|
}
|
||||||
($<, $>) = ($>, $<); # Give up root previleges
|
($<, $>) = ($>, $<); # Give up root previleges
|
||||||
last switch2;
|
last switch2;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue