|
每次安装debian以后都要进行系统设置和对系统升级,每次都比较繁琐。最近写了一个脚本来进行安装后的升级、软件安装和选择比较快的源,此脚本只是针对自己平时的需求写的,使用者在使用中出现问题概不负责!具体代码如下:
#!/bin/bash
SOURCES_LIST='/etc/apt/sources.list'
APT_HOME='/etc/apt/'
APT_SPY_SOURCES='deb http://http.us.debian.org/debian/ stable main'
SSH_HOME='/etc/ssh'
VSFTPD_CONF='/etc/vsftpd.conf'
PASSWD_FILE='/etc/passwd'
USE_BIN='/root/bin/'
INITTAB='/etc/inittab'
#lock users
cp /etc/passwd /etc/passwd.1
passwd -l games 1>/dev/null
sed -i -e '/^games/s/sh/false/' $PASSWD_FILE
passwd -l lp 1>/dev/null
sed -i -e '/^lp/s/sh/false/' $PASSWD_FILE
passwd -l mail 1>/dev/null
sed -i -e '/^mail/s/sh/false/' $PASSWD_FILE
passwd -l news 1>/dev/null
sed -i -e '/^news/s/sh/false/' $PASSWD_FILE
passwd -l list 1>/dev/null
sed -i -e '/^list/s/sh/false/' $PASSWD_FILE
passwd -l irc 1>/dev/null
sed -i -e '/^irc/s/sh/false/' $PASSWD_FILE
passwd -l Debian-exim 1>/dev/null
sed -i -e '/^Debian-exim/s/sh/false/' $PASSWD_FILE
echo "lock user done!"
#change /etc/inittab
cp /etc/inittab /etc/inittab.1
sed -i -e '/^3:/s/^/#/' $INITTAB
sed -i -e '/^4:/s/^/#/' $INITTAB
sed -i -e '/^5:/s/^/#/' $INITTAB
sed -i -e '/^6:/s/^/#/' $INITTAB
LEVEL=`grep -i 'initdefault' $INITTAB |awk -F':' '{print $2}'`
if [ ! -z "$LEVEL" ];then
# 双引号“”可以转义但单引号‘’不能,所以此处sed 用双引号
sed -i -e "/^id:/s/$LEVEL/2/" $INITTAB
echo 'change inittab done!'
fi
#change /etc/securetty Standard consoles
cp /etc/securetty /etc/securetty.1
sed -i -e '/^tty[1-99]/s/^/#/;s/^#tty1$/tty1/' /etc/securetty
#create user shxr
NAME=`awk -F':' '/shxr/{print $1}' /etc/passwd`
if [ -z $NAME ];then
PASS=`python <<EOF
import crypt
print crypt.crypt("123456","test")
EOF`
#echo $PASS
#建立用户test并设置密码
useradd -m -d /home/test -s /bin/bash -g staff -p $PASS test
#强制用户密码过期,第一次登陆需重新设置密码
chage -d 0 test
mkdir -p /home/test/bin;chown -R test:staff /home/test/bin
echo 'user test create succeed!'
else
echo 'test already exist!'
fi
#安装 apt-spy 并选择比较快的源
if [ ! -d "$USE_BIN" ];then
mkdir -p /root/bin/
fi
if [ -f "$SOURCES_LIST" ];then
cd $APT_HOME;cp sources.list sources.list.1;
sed -i -e 's/^#//' sources.list
sed -i -e 's/^/#/' sources.list
echo $APT_SPY_SOURCES >>sources.list
apt-get update
apt-get --yes install apt-spy
apt-spy -d stable -o /root/bin/sources.list -a Asia -t 5
cp /root/bin/sources.list /etc/apt/
apt-get update
fi
#install ssh
apt-get --yes install ssh
if [ -f "$SSH_HOME/sshd_config" ];then
cd $SSH_HOME;cp sshd_config sshd_config.1
sed -i -e 's/PermitRootLogin yes/PermitRootLogin no/' sshd_config
echo "restart sshd,waiting..."
/etc/init.d/ssh restart
fi
#install gcc
apt-get --yes install build-essential
apt-get --yes install autoconf
apt-get --yes install automake
apt-get --yes install tofrodos
#install curl
apt-get --yes install curl
#install lvm2
apt-get --yes install lvm2
#install vim
apt-get --yes install vim
#install vsftpd
apt-get --yes install vsftpd
if [ -f "$VSFTPD_CONF" ];then
sed -i -e 's/anonymous_enable=YES/anonymous_enable=NO/' $VSFTPD_CONF
sed -i -e 's/#local_enable=YES/local_enable=YES/' $VSFTPD_CONF
sed -i -e 's/#write_enable=YES/write_enable=YES/' $VSFTPD_CONF
sed -i -e 's/#local_umask=022/local_umask=022/' $VSFTPD_CONF
sed -i -e 's/#ascii_upload_enable=YES/ascii_upload_enable=YES/' $VSFTPD_CONF
sed -i -e 's/#ascii_download_enable=YES/ascii_download_enable=YES/' $VSFTPD_CONF
echo "restart vsftpd, waiting..."
/etc/init.d/vsftpd restart
else
echo "not install vsftpd!"
fi
apt-get clean all
|
|
|
|
|
|
|
|