#!/bin/sh # adduser script for use with shadow passwords and useradd command. # by Hrvoje Dogan , Dec 1995. # # Japanese enhancements by kojima Aug 1997 # # Modified by Motohiro Takasaki (moto@takasaki-clinic.com) No Warranty # # echo "Can you read Japanese chars on this term ? [y/N]" read ANS if [ "$ANS" = "Y" -o "$ANS" = "y" ]; then echo "Japanese mode" LNG="JAPANESE" else echo "No Japanese mode" fi if [ "$LNG" = "JAPANESE" ]; then echo echo -n "新しいユーザのログイン名を指定してください(8 文字以内) []: " read LOGIN if [ -z "$LOGIN" ] then echo "残念ながらログイン名を指定せずには進めません。。";exit fi echo echo -n "$LOGIN のユーザ ID は? [自動登録の場合は 10000 番台になります]: " read ID GUID="-u $ID" if [ -z "$ID" ] then GUID="" fi echo echo -n "$LOGIN が属するグループは?[users]: " read GID GGID="-g $GID" if [ -z "$GID" ] then GGID="-g users" GID="users" fi # これは useradd のバグに触れるらしい、、、 # changed on 11/07 # #echo #echo -n "$LOGIN は他のグループにも属しますか?[]: " #read AGID #GAGID="-G $AGID" #if [ -z "$AGID" ] #then # GAGID="" #fi echo echo -n "$LOGIN のホームディレクトリは?[/home/$LOGIN]: " read HME if [ -z "$HME" ]; then HME="/home/$LOGIN" fi GHME="-d $HME" echo -n "$LOGIN が使うシェルは? [/bin/tcsh]: " read SHL if [ -z "$SHL" ] then SHL="/bin/tcsh" fi GSHL="-s $SHL" if [ -z "$SHL" ] then GSHL="-s /bin/bash" SHL="/bin/bash" fi echo "$LOGIN が使う WM は? [afterstep]: " echo "1 : AfterStep(NeXT 風)" echo "2 : fvwm95(Windows95 風)" echo "3 : fvwm(ごくシンプル)" read WM if [ -z "$WM" ]; then WM=1 elif [ "$WM" -lt "1" ]; then WM=1 elif [ "$WM" -gt "3" ]; then WM=1 fi echo echo -n "$LOGIN のアカウントの有効期限は? (MM/DD/YY) []: " read EXP GEXP="-e $EXP" if [ -z "$EXP" ] then GEXP="" fi echo echo "さて、実際に必要なエントリを作成します。データはこれでいいですか?" echo echo New login name: $LOGIN if [ -z "$GUID" ]; then echo New UID: [Next available] else echo New UID: $UID fi if [ -z "$GGID" ]; then echo Initial group: users else echo Initial group: $GID fi if [ -z "$GAGID" ] then echo Additional groups: [none] else echo Additional groups: $AGID fi if [ -z "$GHME" ] then echo Home directory: /home/$LOGIN else echo Home directory: $HME fi if [ -z "$GSHL" ] then echo Shell: /bin/bash else echo Shell: $SHL fi if [ -z "$GEXP" ] then echo Expiry date: [no expiration] else echo Expiry date: $EXP fi if [ -d /etc/pcmcia ]; then echo echo "このユーザは Note PC 用の環境設定を使いますか? [Y/n]" read ANS if [ "$ANS" = "n" -o "$ANS" = "N" ]; then PCMCIA=no else PCMCIA=yes fi fi if [ -d $HME ]; then echo echo "$HME は存在します。$HME/.cshrc や $HME/.login は" echo "Plamo のデフォルトの設定に書き換えられますが構いませんか?[y/N]" read ANS if [ -z $ANS ]; then ANS="N" fi if [ "$ANS" != "Y" -a "$ANS" != "y" ]; then exit -1 fi fi echo echo "登録を中止したい場合は Cntl-C を押してください。このデータでいい場合は" echo "Enter を押していただけば、アカウントを作成します" read FOO echo echo "新規アカウント作成中" if [ -d $HME ]; then # backup old files if [ -f $HME/.Xdefaults ]; then mv $HME/.Xdefaults $HME/.old.Xdefaults fi if [ -f $HME/.bashrc ]; then mv $HME/.bashrc $HME/.old.bashrc fi if [ -f $HME/.cshrc ]; then mv $HME/.cshrc $HME/.old.cshrc fi if [ -f $HME/.dir_colors ]; then mv $HME/.dir_colors $HME/.old.dir_colors fi if [ -f $HME/.eggrc ]; then mv $HME/.eggrc $HME/.old.eggrc fi if [ -f $HME/.emacs ]; then mv $HME/.emacs $HME/.old.emacs fi if [ -f $HME/.fvwm2rc95 ]; then mv $HME/.fvwm2rc95 $HME/.old.fvwm2rc95 fi if [ -f $HME/.fvwm95rc ]; then mv $HME/.fvwm95rc $HME/.old.fvwm95rc fi if [ -f $HME/.fvwm95rc ]; then mv $HME/.fvwm95rc $HME/.old.fvwm95rc fi if [ -f $HME/.fvwmrc ]; then mv $HME/.fvwmrc $HME/.old.fvwmrc fi if [ -f $HME/.inputrc ]; then mv $HME/.inputrc $HME/.old.inputrc fi if [ -f $HME/.mh_profile ]; then mv $HME/.mh_profile $HME/.old.mh_profile fi if [ -f $HME/.mnews_setup ]; then mv $HME/.mnews_setup $HME/.old.mnews_setup fi if [ -f $HME/.screenrc ]; then mv $HME/.screenrc $HME/.old.screenrc fi if [ -f $HME/.skk ]; then mv $HME/.skk $HME/.old.skk fi if [ -f $HME/.tknmzrc ]; then mv $HME/.tknmzrc $HME/.old.tknmzrc fi if [ -f $HME/.xinitrc_fvwm ]; then mv $HME/.xinitrc_fvwm $HME/.old.xinitrc_fvwm fi if [ -f $HME/.xinitrc_fvwm95-2 ]; then mv $HME/.xinitrc_fvwm95-2 $HME/.old.xinitrc_fvwm95-2 fi if [ -f $HME/.xinitrc_step ]; then mv $HME/.xinitrc_step $HME/.old.xinitrc_step fi if [ -d $HME/Mail ]; then mv $HME/Mail $HME/Mail.org fi if [ -d $HME/Sample ]; then mv $HME/Sample $HME/Sample.org fi fi if [ "$PCMCIA" = "yes" ]; then /usr/sbin/useradd $GHME -m -k /etc/template/notePC $GEXP $GGID $GAGID $GSHL $GUID $LOGIN else /usr/sbin/useradd $GHME -m -k /etc/template/Desktop $GEXP $GGID $GAGID $GSHL $GUID $LOGIN fi if [ -d $HME ]; then chmod 711 $HME cd $HME if [ "$WM" -eq "1" ]; then ln -sf .xinitrc_step .xinitrc elif [ "$WM" -eq "2" ]; then ln -sf .xinitrc_fvwm95-2 .xinitrc elif [ "$WM" -eq "3" ]; then ln -sf .xinitrc_fvwm .xinitrc else ln -sf .xinitrc_step .xinitrc fi chown $LOGIN.$GID .xinitrc fi echo /usr/bin/chfn $LOGIN echo /usr/bin/passwd $LOGIN echo /var/qmail/bin/maildirmake /home/$LOGIN/Maildir chown -R $LOGIN /home/$LOGIN/Maildir chgrp -R $GID /home/$LOGIN/Maildir echo "./Maildir/" >/home/$LOGIN/.qmail chown $LOGIN /home/$LOGIN/.qmail chgrp $GID /home/$LOGIN/.qmail echo "登録が完了しました" else echo echo -n "Login name for new user (8 characters or less) []: " read LOGIN if [ -z "$LOGIN" ] then echo "Come on, man, you can't leave the login field empty...";exit fi echo echo -n "User id for $LOGIN [ defaults to next available]: " read ID GUID="-u $ID" if [ -z "$ID" ] then GUID="" fi echo echo -n "Initial group for $LOGIN [users]: " read GID GGID="-g $GID" if [ -z "$GID" ] then GGID="-g users" GID="users" fi # これは useradd のバグに触れるらしい、、、 # changed on 11/07 # #echo -n "Additional groups for $LOGIN []: " #echo #read AGID #GAGID="-G $AGID" #if [ -z "$AGID" ] #then GAGID="" #fi echo echo -n "$LOGIN's home directory [/home/$LOGIN]: " read HME if [ -z "$HME" ]; then HME="/home/$LOGIN" fi GHME="-d $HME" echo echo -n "$LOGIN's shell [/bin/tcsh]: " read SHL if [ -z "$SHL" ] then SHL="/bin/tcsh" fi GSHL="-s $SHL" if [ -z "$SHL" ] then GSHL="-s /bin/bash" SHL="/bin/bash" fi echo "$LOGIN's WM ? [afterstep]: " echo "1 : AfterStep(NeXT like)" echo "2 : fvwm95(Windows95 like)" echo "3 : fvwm(most simple)" read WM if [ -z "$WM" ]; then WM=1 elif [ "$WM" -lt "1" ]; then WM=1 elif [ "$WM" -gt "3" ]; then WM=1 fi echo echo -n "$LOGIN's account expiry date (MM/DD/YY) []: " read EXP GEXP="-e $EXP" if [ -z "$EXP" ] then GEXP="" fi echo echo "OK, I'm about to make a new account. Here's what you entered so far:" echo echo New login name: $LOGIN if [ -z "$GUID" ] then echo New UID: [Next available] else echo New UID: $UID fi if [ -z "$GGID" ] then echo Initial group: users else echo Initial group: $GID fi if [ -z "$GAGID" ] then echo Additional groups: [none] else echo Additional groups: $AGID fi if [ -z "$GHME" ] then echo Home directory: /home/$LOGIN else echo Home directory: $HME fi if [ -z "$GSHL" ] then echo Shell: /bin/bash else echo Shell: $SHL fi if [ -z "$GEXP" ] then echo Expiry date: [no expiration] else echo Expiry date: $EXP fi if [ -d /etc/pcmcia ]; then echo echo "Does this user uses Note PC environment setting? [Y/n]" read ANS if [ "$ANS" = "n" -o "$ANS" = "N" ]; then PCMCIA=no else PCMCIA=yes fi fi if [ -d $HME ]; then echo echo "$HME exists. $HME/.cshrc or $HME/.login will be" echo "overwritten by Plamo's default configuration files. OK?[y/N]" read ANS if [ -z $ANS ]; then ANS="N" fi if [ "$ANS" != "Y" -a "$ANS" != "y" ]; then exit -1 fi fi echo echo "This is it... if you want to bail out, hit Control-C. Otherwise, press" echo "ENTER to go ahead and make the account." read FOO echo echo Making new account... if [ -d $HME ]; then # backup old files if [ -f $HME/.Xdefaults ]; then mv $HME/.Xdefaults $HME/.old.Xdefaults fi if [ -f $HME/.bashrc ]; then mv $HME/.bashrc $HME/.old.bashrc fi if [ -f $HME/.cshrc ]; then mv $HME/.cshrc $HME/.old.cshrc fi if [ -f $HME/.dir_colors ]; then mv $HME/.dir_colors $HME/.old.dir_colors fi if [ -f $HME/.eggrc ]; then mv $HME/.eggrc $HME/.old.eggrc fi if [ -f $HME/.emacs ]; then mv $HME/.emacs $HME/.old.emacs fi if [ -f $HME/.fvwm2rc95 ]; then mv $HME/.fvwm2rc95 $HME/.old.fvwm2rc95 fi if [ -f $HME/.fvwm95rc ]; then mv $HME/.fvwm95rc $HME/.old.fvwm95rc fi if [ -f $HME/.fvwm95rc ]; then mv $HME/.fvwm95rc $HME/.old.fvwm95rc fi if [ -f $HME/.fvwmrc ]; then mv $HME/.fvwmrc $HME/.old.fvwmrc fi if [ -f $HME/.inputrc ]; then mv $HME/.inputrc $HME/.old.inputrc fi if [ -f $HME/.mh_profile ]; then mv $HME/.mh_profile $HME/.old.mh_profile fi if [ -f $HME/.mnews_setup ]; then mv $HME/.mnews_setup $HME/.old.mnews_setup fi if [ -f $HME/.screenrc ]; then mv $HME/.screenrc $HME/.old.screenrc fi if [ -f $HME/.skk ]; then mv $HME/.skk $HME/.old.skk fi if [ -f $HME/.tknmzrc ]; then mv $HME/.tknmzrc $HME/.old.tknmzrc fi if [ -f $HME/.xinitrc_fvwm ]; then mv $HME/.xinitrc_fvwm $HME/.old.xinitrc_fvwm fi if [ -f $HME/.xinitrc_fvwm95-2 ]; then mv $HME/.xinitrc_fvwm95-2 $HME/.old.xinitrc_fvwm95-2 fi if [ -f $HME/.xinitrc_step ]; then mv $HME/.xinitrc_step $HME/.old.xinitrc_step fi if [ -d $HME/Mail ]; then mv $HME/Mail $HME/Mail.org fi if [ -d $HME/Sample ]; then mv $HME/Sample $HME/Sample.org fi fi if [ "$PCMCIA" = "yes" ]; then /usr/sbin/useradd $GHME -m -k /etc/template/notePC $GEXP $GGID $GAGID $GSHL $GUID $LOGIN else /usr/sbin/useradd $GHME -m -k /etc/template/Desktop $GEXP $GGID $GAGID $GSHL $GUID $LOGIN fi if [ -d $HME ]; then chmod 711 $HME cd $HME if [ "$WM" -eq "1" ]; then ln -sf .xinitrc_step .xinitrc elif [ "$WM" -eq "2" ]; then ln -sf .xinitrc_fvwm95-2 .xinitrc elif [ "$WM" -eq "3" ]; then ln -sf .xinitrc_fvwm .xinitrc else ln -sf .xinitrc_step .xinitrc fi chown $LOGIN.$GID .xinitrc fi echo /usr/bin/chfn $LOGIN echo /usr/bin/passwd $LOGIN echo /var/qmail/bin/maildirmake /home/$LOGIN/Maildir chown -R $LOGIN /home/$LOGIN/Maildir chgrp -R $GID /home/$LOGIN/Maildir echo "./Maildir/" >/home/$LOGIN/.qmail chown $LOGIN /home/$LOGIN/.qmail chgrp $GID /home/$LOGIN/.qmail echo "Done..." fi if [ -x /usr/sbin/sendmail ]; then if [ ! -f /usr/spool/mail/$LOGIN ]; then cat /etc/template/mime-mail.sample > /usr/spool/mail/$LOGIN chown $LOGIN.$GID /usr/spool/mail/$LOGIN chmod og-rwx /usr/spool/mail/$LOGIN fi fi