06.12.2012 Aufrufe

Technische Dokumentation zum Unix-Verbund ... - Dr. Hubert Feyrer

Technische Dokumentation zum Unix-Verbund ... - Dr. Hubert Feyrer

Technische Dokumentation zum Unix-Verbund ... - Dr. Hubert Feyrer

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

B.6 Adduser/chlogin 290<br />

}<br />

if(-d $new_home){<br />

die "$0: Home \"$new_home\" does already exist.\n";<br />

}<br />

($new_home=$old_home)=~s|/[^/]*$|/$new_login|;<br />

if(-d $new_home){<br />

die "$0: Home \"$new_home\" does already exist.\n";<br />

}<br />

### Check for clash w/ new uid<br />

if($opt_u ne ""){<br />

if(@x=getpwuid($opt_u)){<br />

die "$0: UID $opt_u already given to login $x[0].\n";<br />

}<br />

}<br />

### Does new gid exist?<br />

if($opt_g ne ""){<br />

if($opt_g=~/\d+/){<br />

# gid is numeric<br />

if(!getgrgid($opt_g)){<br />

die "$0: unknown gid '$opt_g'\n";<br />

}else{<br />

$opt_gid = (getgrgid($opt_g))[2];<br />

$opt_group = (getgrgid($opt_g))[0];<br />

}<br />

}else{<br />

# gid is group name<br />

if((getgrnam($opt_g)) eq ""){<br />

die "$0: unknown group '$opt_g'\n";<br />

}else{<br />

$opt_gid = (getgrnam($opt_g))[2];<br />

$opt_group = (getgrnam($opt_g))[0];<br />

}<br />

}<br />

}<br />

###########################################################################<br />

# Change login (passwd, home)<br />

###########################################################################<br />

sub do_chlogin<br />

{<br />

if($opt_L){<br />

# Local files<br />

changefile("$DEF_ETC_DIR/passwd",$old_login,<br />

sub {<br />

$x[0]=$new_login;<br />

$x[2]=$opt_u if $opt_u ne "";<br />

$x[3]=$opt_gid if $opt_g ne "";<br />

$x[5]=$new_home;<br />

});<br />

changefile("$DEF_ETC_DIR/shadow",$old_login,<br />

sub {<br />

$x[0]=$new_login;<br />

});<br />

}else{<br />

# YP files<br />

changefile("$DEF_YP_DIR/passwd",$old_login,<br />

sub {<br />

$x[0]=$new_login;<br />

$x[2]=$opt_u if $opt_u ne "";<br />

$x[3]=$opt_gid if $opt_g ne "";<br />

$x[5]=$new_home;<br />

});<br />

updateNIS(); # ggf. ypmake<br />

}<br />

print "New login ($new_login)"<br />

if $opt_verbose;<br />

print ", uid ($opt_u)"<br />

if $opt_verbose and $opt_u;<br />

(c) 1996-2003 <strong>Hubert</strong> <strong>Feyrer</strong> Stand: 21. Oktober 2003

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!