`

安装debian后的配置脚本

阅读更多

免得每次都要搞一遍,还容易出错

 

#!/bin/bash

SOURCES_LIST='/etc/apt/sources.list'
APT_HOME='/etc/apt/'
APT_SPY_SOURCES='deb http://http.us.debian.org/debian/ lenny main'
SSH_HOME='/etc/ssh'
VSFTPD_CONF='/etc/vsftpd.conf'
PASSWD_FILE='/etc/passwd'
USE_BIN='/root/bin/'
INITTAB='/etc/inittab'
date=`date +%F`
user="niyunjiu"

#lock users
function lock_user 
{
	cp /etc/passwd /etc/passwd.bak.$date
	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!"
	echo "***************************"
}

#change /etc/inittab
function change_inittab
{
	cp /etc/inittab /etc/inittab.bak.$date
	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
	echo "***************************"
}

#change /etc/securetty Standard consoles
function security_tty
{
	cp /etc/securetty /etc/securetty.bak.$date
	sed -i -e '/^tty[1-99]/s/^/#/;s/^#tty1$/tty1/' /etc/securetty
	echo "finish security_tty"
	echo "***************************"
}

#create user 
function create_user
{
NAME=`awk -F':' '/niyunjiu/{print $1}' /etc/passwd`
if [ -z $NAME ];then
   PASS=`python <<EOF
import crypt
print crypt.crypt("123456","niyunjiu")
EOF`
   #echo $PASS
   #建立用户test并设置密码
   useradd -m -d /home/niyunjiu -s /bin/bash -g staff -p $PASS niyunjiu
   #强制用户密码过期,第一次登陆需重新设置密码
   chage -d 0 niyunjiu
   mkdir -p /home/niyunjiu/bin;chown -R niyunjiu:staff /home/niyunjiu/bin
   echo 'user niyunjiu create succeed!'
else
   echo 'niyunjiu already exist!'
fi
	echo "finish create_user"
	echo "***************************"
}

#安装 apt-spy 并选择比较快的源
function 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.$date;
	   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
	   cat /root/bin/sources.list >> $SOURCES_LIST
	   sed -i -e 's/stable/lenny/g' sources.list
	   
	fi
	echo "finish apt_spy"
	echo "***************************"


	#/etc/hosts
	#/etc/hostname
	#deb http://mirrors.163.com/debian/ lenny main non-free contrib
	#deb http://mirrors.163.com/debian/ lenny-proposed-updates main non-free contrib
	#deb-src http://mirrors.163.com/debian/ lenny main non-free contrib
	#deb-src http://mirrors.163.com/debian/ lenny-proposed-updates main non-free contrib
	 
	#deb http://mirrors.sohu.com/debian/ lenny main non-free contrib
	#deb http://mirrors.sohu.com/debian/ lenny-proposed-updates main non-free contrib
	#deb-src http://mirrors.sohu.com/debian/ lenny main non-free contrib
	#deb-src http://mirrors.sohu.com/debian/ lenny-proposed-updates main non-free contrib
}

#install software
function install_software
{
	apt-get update
	apt-get --yes install ssh
	if [ -f "$SSH_HOME/sshd_config" ];then
	   cd $SSH_HOME;cp sshd_config sshd_config.$date
	   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 libtool autoconf automake tofrodos



	#install ntp rcconf less sudo
	apt-get --yes install ntp rcconf less sudo postfix rsync ifstat logwatch sysstat logcheck lm-sensors syslog-summary
	chmod +w /etc/sudoers
	sed -i -e '/sudo ALL/s/^#//' /etc/sudoers
	chmod 0440 /etc/sudoers

	#install curl
	apt-get --yes install curl

	#install at
	#apt-get --yes install at

	#install lvm2
	#apt-get --yes install lvm2

	#install vim
	apt-get --yes install vim
	sed -i -e '/syntax on/s/^.*$/syntax on/' /etc/vim/vimrc

UTF8=`awk -F'=' '/fileencodings=utf-8/{print $1}' /etc/vim/vimrc`
	if [ -z ${UTF8} ];then
cat << EOF >> /etc/vim/vimrc
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc
EOF
	fi
	echo "finish install software"
	echo "***************************"
}

#install vsftpd
function 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

	echo "***************************"
}

#stop ipv6
function stop_ipv6
{
	BLACKLIST=`awk -F' ' '/blacklist ipv6/{print $1}' /etc/modprobe.d/blacklist`
	if [ -z "${BLACKLIST}" ];then	
		echo "blacklist ipv6" >> /etc/modprobe.d/blacklist
	fi	
	echo "finish stop_ipv6"	
	echo "***************************"
}

#config limits
function config_limits
{
	LIMIT=`awk -F' ' '/nofile  10240/{print $1}' /etc/security/limits.conf | head -n 1`
	if [ -z ${LIMIT} ];then
		echo '*        soft    nofile  10240' >> /etc/security/limits.conf
		echo '*        hard    nofile  10240' >> /etc/security/limits.conf
	fi
	echo "finish config_limits"
	echo "***************************"
}

function config_bash
{
cat << EOF >> /home/niyunjiu/.profile
PS1='${debian_chroot:+($debian_chroot)}\h@\u:\w\$ '
EOF

	echo "alias ll='ls -l --color=auto'" >> /etc/profile
	echo "alias ls='ls --color=auto'" >> /etc/profile



	echo "finish config_bash"
	echo "***************************"
}

function config_dns
{
	echo "nameserver 202.106.0.20" >> /etc/resolv.conf
	echo "nameserver 8.8.8.8" >> /etc/resolv.conf
	echo "nameserver 8.8.4.4" >> /etc/resolv.conf
	echo "nameserver 208.67.222.222" >> /etc/resolv.conf
	echo "nameserver 208.67.220.220" >> /etc/resolv.conf
	echo "finish config_dns"
	echo "***************************"
}

function config_crontab
{
	
	MAIL=`awk -F'=' '/MAILTO/{print $2}' /etc/crontab`
	if [ -z ${MAIL} ];then
			sed -i -e '/PATH/aMAILTO=root' /etc/crontab
	fi
	sed -i -e '/^root/s/^.*$/root:\ sa\@kongfz.com/' /etc/aliases #todo  not have root
	echo "finish config_crontab"
	echo "***************************"

}

function config_timezone
{
        echo "Asia/Shanghai" > /etc/timezone
        cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
	echo "finish config_timezoe"
	echo "***************************"

}
config_dns
lock_user
change_inittab
security_tty
create_user
apt_spy
install_software
stop_ipv6
config_limits
config_bash
config_crontab
config_timezone

aptitude update && aptitude full-upgrade

apt-get clean all

echo "**************************"
echo "please config sudo postfix and ssh"
 


  


  
分享到:
评论

相关推荐

    简化Debian系统配置的脚本及相关文件

    简化Debian系统配置的脚本及相关文件,脚本在博文《Shell 脚本小试牛刀 -- Debian系统初装后的各种配置》中有所介绍,希望大家多多支持

    linux-在你的Kindle上安装Debian的脚本

    5. **系统配置**:安装完成后,需要配置Debian的基本设置,如网络连接、用户账户、桌面环境等,使其适应Kindle的硬件和触摸屏界面。 6. **维护与更新**:安装后,定期更新Debian系统和软件,保持安全性,同时注意...

    debian、ubuntu、凝思磐石系统oracle11g安装包,内置安装脚本

    安装脚本会处理大部分配置工作,如安装必要的系统库(如gcc、kernel-devel、binutils等)、设置ORACLE_BASE、ORACLE_HOME、PATH等环境变量,以及创建Oracle用户和group。 接下来是Oracle数据库的安装。在运行安装...

    Debian Lenny系统安装与配置指南

    **Debian Lenny系统安装与配置指南** Debian Lenny,是Debian项目的一个历史悠久的稳定版本,发布于2009年,以其强大的稳定性和开源特性吸引了众多Linux用户。本指南将详细介绍如何安装和配置这个系统,为初学者...

    ubuntu22.04或者debian12 安装FreeSWITCH脚本(先看描述中的使用手册和预览地址)

    ubuntu22.04或者debian12 安装FreeSWITCH一键安装freeswitch脚本,提供web可视化管理GUI。 一键安装freeswitch脚本,提供web可视化管理GUI,jssip demo,单呼,组呼,群呼,广播,会议,黑名单,acl,呼叫转移,监听...

    Debian网络及服务器配置Word版[参照].pdf

    安装后,通过编辑配置文件和设置用户权限来完成FTP服务的配置。 **邮件服务器配置**: Exim是一款强大的邮件传输代理,用于配置SMTP和POP3服务。安装后,需根据需求配置域、路由和认证机制。 **Samba服务器配置**...

    debian10autoconfig:一套交互式Debian 10配置的脚本-开源

    脚本提供:-轻松的网络配置和保护(ip,静态arp条目,防火墙规则等)-轻松的GRUB保护-交互式一键式软件安装-配置DE并提供设置恢复和目录清理-夜间自动关闭等等当然,您可能不会使用整个脚本集,而只会使用所需的...

    Ubuntu/Debian自动配置IP的shell脚本

    Ubuntu/Debian的系统下对IP的自动配置脚本,包括网卡,IP ,掩码,网关,DNS服务器的配置,使用指令:sudo ipaddr.sh.x -i eth0 -a 192.168.1.10 -m 255.255.255.0 -g 192.168.1.1 -d 8.8.8.8 根据自己的需求进行一定...

    k8s 安装教程 一键安装脚本

    在本文中,我们将详细介绍如何通过一键脚本在常见的Linux发行版上(如Ubuntu 16.04 64位、CentOS 7 64位和Debian 9 64位)安装Kubernetes(简称k8s)集群,并提供一种半离线安装的方法。此方法特别适合在网络受限或...

    直接用脚本配置IP地址

    1. **创建配置脚本**:使用文本编辑器(如`nano`或`vim`)创建一个bash脚本文件,例如`configure_ip.sh`。 2. **设置权限**:使用`chmod`命令赋予脚本执行权限,例如`chmod +x configure_ip.sh`。 3. **编写脚本**...

    Debian10.4安装zabbix.docx

    总结,安装Debian10.4是Zabbix部署的第一步,随后的准备和安装过程需要细心操作,特别是配置Apache和PHP环境。Zabbix的配置工作需要深入了解监控需求和Zabbix的功能,以实现高效全面的IT基础设施监控。

    MA-DebianLiveConf:用于矿工代理的 Debian 实时配置脚本和资源

    MA-DebianLiveConf MiW 的 MinerAgent 的 Debian 实时配置脚本和资源Xolokram 的 Xolokram: : XPM (PrimeCoin) PTS (ProtoShares) jh 的 jhMiners: : jhprimeminer-aero by clintar DHCP autoconf 支持使用 ...

    Linux系统安装L2TPIPSec一键安装脚本.docx

    系统支持:CentOS6+,Debian7+,Ubuntu12+ 内存要求:≥128M 关于本脚本: 名词解释如下 L2TP(Layer 2 Tunneling Protocol) IPSec(Internet Protocol Security) IKEv2 (Internet Key Exchange v2) 能实现 IPsec ...

    kamailio 安装配置过程

    还需要注意的是,安装完成后,需要修改环境变量,以确保Kamailio的可执行文件和配置文件能够正确地被系统识别。这包括将`/usr/local/sbin`路径添加到PATH环境变量中,并且确保Kamailio的配置文件安装在`/usr/local/...

    Ubuntu 20.04 LTS 配置脚本.zip

    标题 "Ubuntu 20.04 LTS 配置脚本.zip" 暗示这是一个包含一系列脚本的压缩包,这些脚本可能是为了自动化配置Ubuntu 20.04 LTS (长期支持版) 操作系统的特定设置。Ubuntu是基于Debian的开源Linux发行版,而20.04 LTS...

    离线安装ntpdate服务安装包及一键配置脚本

    本文将深入探讨如何在Linux环境中离线安装ntpdate服务,并使用一键配置脚本来简化操作流程。 首先,我们要理解ntpdate的作用。ntpdate是一个简单的命令行工具,它允许Linux系统与NTP服务器进行一次性的时钟同步。这...

    Linux一键安装ffmpeg脚本

    4. **解压与编译**:下载完成后,脚本会解压源代码,然后进入解压后的目录,执行配置、编译和安装步骤。通常包括`./configure`,`make`和`make install`。 5. **配置参数**:在`./configure`阶段,脚本可能允许用户...

    sbdeb 轻量级网站环境配置脚本

    根据lowendscript修改而成的一个Debian服务器配置脚本,最大幅度精简Debian系统并用最少的资源占用配置小内存服务器。全部组件内存占用仅30MB左右,非常适合极简爱好者及屌丝站长使用。 它可以用简单而优雅的指令...

    debian:Xfce no Debian安装脚本

    总结来说,"debian:Xfce在Debian上的安装脚本"是一个涉及Linux系统管理、Shell编程和桌面环境自定义的综合实践,旨在通过自动化脚本来简化和优化Xfce在Debian上的安装和配置过程。这个过程中会用到各种Linux命令和...

Global site tag (gtag.js) - Google Analytics