Files
StateGrid/install_shell/other.sh
Peng Zhihui 879fa64213 Touch /var/log/errors before chown it.
Give up chowning  /etc/cron/weekly/, because the dir doesn't exist now.
Chmod files under .history_log dir -> chmod -R .history_log dir,
because no file under it.

	modified:   install_shell/other.sh
2014-02-27 17:25:54 +08:00

159 lines
5.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
. ./check_function.sh
USER_NAME=$1
USER_HOME=$2
USER_SHELL=$3
#revise order
grep 4.2.35 /etc/issue &> /dev/null
if [ $? = 0 ];then
rm /etc/rc.d/rcsysinit.d/S005modules
rm /etc/rc.d/rcsysinit.d/S010udev
ln -sf /etc/rc.d/init.d/modules /etc/rc.d/rcsysinit.d/S010modules
ln -sf /etc/rc.d/init.d/udev /etc/rc.d/rcsysinit.d/S005udev
fi
#check linx sn
grep lsm_linx /etc/sysconfig/modules &> /dev/null
if [ $? != 0 ];then
echo "lsm_linx" >> /etc/sysconfig/modules
fi
# revise /etc/rc.d/init.d/functions
sed -i '/ENTER/s/^/# &/g' /etc/rc.d/init.d/functions
#checkfs
FILE=/etc/rc.d/init.d/checkfs
egrep 'options=' $FILE | tail -n 1 | grep '\-f'
if [ $? -eq 0 ]; then
line=$(sed -n '/options=/ =' $FILE | tail -n 1)
sed -i "${line}s@-f@@" $FILE
echo "$FILE fix successful."
#else
# echo "$FILE already fixed."
# exit 0
fi
#解决从无root内核启动后日志轮转和与时间服务器校时的cron定时任务的用户为sysadmin
#解决d5000等用户家目录下.xsession-errors文件删除的问题
cp crontab /etc/
sed -i "s#d5000#${USER_NAME}#g" /etc/crontab
chown sysadmin.sysadmin /etc/crontab
chmod 644 /etc/crontab
cp xrm.sh /usr/sbin
cp linx-watch-top.sh /usr/sbin
chown root.root /usr/sbin/xrm.sh
chown root.root /usr/sbin/linx-watch-top.sh
chmod 755 /usr/sbin/xrm.sh
chmod 755 /usr/sbin/linx-watch-top.sh
if [ -f /var/spool/cron/crontabs/root ];then
rm /var/spool/cron/crontabs/root
fi
#恢复被netkit-base包覆盖的/etc/inetd.conf文件
cp inetd.conf /etc
chown root.root /etc/inetd.conf
chmod 644 /etc/inetd.conf
touch /var/log/kernel
chown audadmin.audadmin /var/log/kernel*
chmod 644 /var/log/kernel*
chown audadmin.audadmin /var/log/messages*
chmod 644 /var/log/messages*
chown audadmin.audadmin /var/log/auth*
chmod 644 /var/log/auth*
touch /var/log/errors
chown audadmin.audadmin /var/log/errors*
chmod 644 /var/log/errors*
chown -R audadmin.audadmin /etc/cron/daily/
#chown -R audadmin.audadmin /etc/cron/weekly/
chown audadmin.audadmin /etc/logrotate.conf
touch /var/lib/logrotate.status
chown audadmin.audadmin /var/lib/logrotate.status
chmod 755 /usr/sbin/runjobs
#解决以普通用户运行date命令设置当前时间的问题
setcap "cap_sys_time+ep" /bin/date
#解决/var/log/errors中postfix/sendmail:fatal:chair /var/spool/postfix:Permission denied?报错问题
#解决/var/log/messages中的/usr/sbin/cron[2856]: (sysadmin) MAIL (mailed 126 bytes of output but got status 0x004b )的报错问题
#mkfifo /var/spool/postfix/public/pickup
#chown postfix.postfix /var/spool/postfix/public/pickup
#setfacl -m u:sysadmin:rwx /var/spool/postfix
#setfacl -m u:sysadmin:rwx /var/spool/postfix/*
#setfacl -m u:sysadmin:rwx /usr/sbin/postdrop
#解决定时抓取占用最大内存的进程名,并记录到/var/log/messages文件中
cp get_max_mem_process.sh /usr/sbin/
chown audadmin.audadmin /usr/sbin/get_max_mem_process.sh
chmod 755 /usr/sbin/get_max_mem_process.sh
#获取系统的部分日志或全部日志及系统相关信息的脚本
cp get_parameter_log.sh /usr/sbin/
cp check_sec_local.sh /usr/sbin
cp os.sh /usr/sbin
cp pci.ids /usr/share
chown sysadmin.sysadmin /usr/sbin/get_parameter_log.sh
chmod 755 /usr/sbin/get_parameter_log.sh
chown sysadmin.sysadmin /usr/sbin/check_sec_local.sh
chmod 755 /usr/sbin/check_sec_local.sh
chown sysadmin.sysadmin /usr/sbin/os.sh
chmod 755 /usr/sbin/os.sh
cp LinxSetupSign /etc/security
echo "setup time">>/etc/security/LinxSetupSign
date>>/etc/security/LinxSetupSign
#check root user's HISTTIMEFORMAT
grep HISTTIMEFORMAT /root/.bashrc &> /dev/null
if [ $? -ne 0 ];then
#设置保存历史命令的文件大小
echo "HISTFILESIZE=200000" >> /root/.bashrc
#保存历史命令条数
echo "HISTSIZE=200000" >> /root/.bashrc
#实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多用户间的相互覆盖
echo "export PROMPT_COMMAND=\"history -a\"">>/root/.bashrc
#记录每条历史命令的执行时间
echo "HISTTIMEFORMAT=\"%Y%m%d-%H%M%S:\"" >> /root/.bashrc
echo "export HISTTIMEFORMAT" >> /root/.bashrc
fi
grep HISTTIMEFORMAT ~sysadmin/.bashrc &> /dev/null
if [ $? -ne 0 ];then
#设置保存历史命令的文件大小
echo "HISTFILESIZE=200000" >> ~sysadmin/.bashrc
#保存历史命令条数
echo "HISTSIZE=200000" >> ~sysadmin/.bashrc
#实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多用户间的相互覆盖
echo "export PROMPT_COMMAND=\"history -a\"">>~sysadmin/.bashrc
#记录每条历史命令的执行时间
echo "HISTTIMEFORMAT=\"%Y%m%d-%H%M%S:\"" >> ~sysadmin/.bashrc
echo "export HISTTIMEFORMAT" >> ~sysadmin/.bashrc
fi
if [ "${USER_SHELL}" == "tcsh" ];then
chmod -R 644 ${USER_HOME}/.history_log/
else
grep HISTTIMEFORMAT ${USER_HOME}/.bashrc &> /dev/null
if [ $? -ne 0 ];then
#设置保存历史命令的文件大小
echo "HISTFILESIZE=200000" >> ${USER_HOME}/.bashrc
#保存历史命令条数
echo "HISTSIZE=200000" >> ${USER_HOME}/.bashrc
#实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多用户间的相互覆盖
echo "export PROMPT_COMMAND=\"history -a\"" >> ${USER_HOME}/.bashrc
#记录每条历史命令的执行时间
echo "HISTTIMEFORMAT=\"%Y%m%d-%H%M%S:\"" >> ${USER_HOME}/.bashrc
echo "export HISTTIMEFORMAT" >> ${USER_HOME}/.bashrc
echo "#include .bashrc if it exists">>${USER_HOME}/.profile
echo "if [ -f \"\$HOME/.bashrc\" ];then">>${USER_HOME}/.profile
echo ". \"\$HOME/.bashrc\"">>${USER_HOME}/.profile
echo "fi">>${USER_HOME}/.profile
chown ${USER_NAME}.${USER_NAME} ${USER_HOME}/.bashrc
chown ${USER_NAME}.${USER_NAME} ${USER_HOME}/.profile
fi
fi
chown netadmin.netadmin /etc/rc.d/rc.local
touch /var/log/corosync.log
chown audadmin.audadmin /var/log/corosync.log