Thats a pretty ugly script, whats it actually trying to do?<br><br>first thing wrong is the quoting it should be '/profiles/' on the mkdir(/profiles/, 0755); line (do you realy want a profiles dir in /?)<br><br>and in chown($uid, $gid, /profiles/$name); it should be "/profiles/$name"
<br><br>a slightly better way using perls builtin pwent stuff might be like this:<br><br>start---------------------------------------------------------<br>#!/usr/bin/perl<br><br>use strict;<br>use warnings;<br><br>my $profile_dir = '/profiles/'; # do you realy want this? need to be root
<br>mkdir($profile_dir, 0755) or die "cannot make dir $profile_dir: $!";<br><br>setpwent();<br>while (my ($name, $uid, $gid) = (getpwent())[0, 2, 3]) {<br> next unless $name =~ /^[\w\ \-\+]+$/;<br> my $name_dir = "$profile_dir/$name";
<br> next if -e $name_dir;<br> mkdir ($name_dir, 0700) or die "cannot make dir $name_dir: $!";<br> chown ($uid, $gid, $name_dir) or warn "need to be root!: $!";<br>}<br>endpwent();<br>---------------------------------------------------------end
<br><br>but if you only want real users then add a<br><br>next if $uid < 1000;<br><br>Don Jones<br>