Tagged: Centos

Centos 批量设置权限

最近服务器总是出现问题,php文件的执行权限居然是777,真是见鬼。

直接使用chmod -R设置权限结果导致服务器上全部网站都是403了(文件没有权限)

想直接设置php这类的文件权限为644,文件夹为745呢,chmod又不支持。。

突然想到可以结合find命令配合管道来执行。

# 利用find -type 定义文件类型,查找到对应的类型,传递给chmod来进行权限设置
# f 表示普通文件, d 表示文件夹
# 第一行表示直接结合-exec来执行命令,第二行表示搜索出匹配的类型传递给chmod来分配权限
# 设置文件权限
find -type f -exec chmod 644 {} \;
find -type f|xargs chmod 644

# 设置文件夹权限
find -type d -exec chmod 745 {} \;
find -type d|xargs chmod 745

Centos居然中毒了!

好扯淡的嗦,今天登陆VPS想看看运行情况,使用Htop查看进程,突然发现很不正常,各种进程快速启动,然后关闭,并出现了ls -a、ifconfig、grep这类的系统进程,且ifconfig这个网络命令的cpu占用率一直保持在99%。第一反应,中毒了???

使用chkconfig --list查看,居然没有异常的东西!

chkconfig

查看crontab日志

# 查看crontab列表
crontab -l

# 查看crontab日志
ls /var/log/cron*
cat /var/log/cron-20151011 |more
gcc

我去,好夸张。。。3分钟执行一次。。。看看这玩意儿里面到底是啥子!!

[root@WebServer ~]# cat /etc/cron.hourly/gcc.sh
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done
cp /lib/libudev.so /lib/libudev.so.6
/lib/libudev.so.6

既然知道了,删除试试。。。重启后又出现!!!!!

rm -rf /etc/cron.hourly/gcc.sh
chattr +i /etc/crontab

使用top命令看看到底是哪个程序。结果一个rwvyraspcb的进程(我完全不记得有这样的进程)CPU占用率和之前htop里面看到的ifconfig占用的几乎一致,记下PID 1270。。kill -STOP 1270暂停程序试试。

# 使用ps命令查看主进程
pstree
top

# 追踪进程
# 发现病毒一直再执行一下操作(以下我已经删除了病毒体)
strace -tt -p 1270
13:27:31.002791 gettimeofday({1445750851, 2854}, NULL) = 0
13:27:31.002927 open("/lib/libudev.so", O_RDONLY) = -1 ENOENT (No such file or directory)
13:27:31.003053 open("/lib/libudev.so", O_RDONLY) = -1 ENOENT (No such file or directory)
13:27:31.003133 open("/lib/libudev.so", O_RDONLY) = -1 ENOENT (No such file or directory)

# 暂停进程
kill -STOP 1270

使用lsof看看是否还有进程在打开,再看看最近的变动

# 查看/usr/bin关联情况
lsof -R  | grep "/usr/bin"
ls -lt /usr/bin | head

既然没有多打开的进程,那么就找现有的删掉看看。

find /etc -name '*rwvyraspcb*' | xargs rm -f
rm -rf /usr/bin/rwvyraspcb

全部都干净了,干掉刚才停止的进程。

pkill rwvyraspcb

使用htop再看看进程列表。哦也!干净了!!

来吧,删除病毒本体

rm -rf /lib/libudev.so
rm -rf /lib/libudev.so.6

2015年12月27日更新
今天新配置环境,安装了epel源的htop发现这个病毒又出来!
直接安装杀毒软件!ClamAV

yum install -y epel-release
yum install -y clamav
freshclam #升级病毒库
clamscan -r --bell -i / --remove #全盘扫描

Centos 7 防火墙常用命令

# 查看帮助
firewall-cmd --help

# mask
systemctl unmask firewalld
systemctl mask firewalld

# Enable firewalld
systemctl enable firewalld

# Disable firewalld
systemctl disable firewalld

# 启动防火墙
systemctl start firewalld

# 关闭防火墙
systemctl stop firewalld

# 重启防火墙
systemctl restart firewalld

# 防火墙状态
firewall-cmd --state
systemctl status firewalld

# 重载规则
firewall-cmd --reload

# 关闭FTP服务端口
firewall-cmd  --remove-service=ftp --permanent

# 查询服务是否生效(返回yes or no)
firewall-cmd --query-service=http
firewall-cmd --query-port=22/tcp

# 查看当前绑定网卡
firewall-cmd --list-interfaces

# 查询自定义开放服务
firewall-cmd --list-all

# 开启自定义端口
# 命令含义:
# --zone 			//作用域
# --add-port=80/tcp 	//添加端口,格式为:端口/通讯协议
# --permanent 		//永久生效,没有此参数重启后失效
firewall-cmd --add-port=3128/tcp
firewall-cmd --zone=public --add-port=1688/tcp --permanent
firewall-cmd --zone=dmz --add-port=8080/tcp
firewall-cmd --zone=public --add-port=5060-5061/udp

# 获取支持的服务名
firewall-cmd --permanent --get-services
# 开启服务
firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https

# 关闭服务或端口
firewall-cmd --permanent --zone=trusted --remove-service=http
firewall-cmd --permanent --zone=public --remove-port=1688/tcp

# 获取支持的作用域
firewall-cmd --get-zones

# 设置默认作用域(默认为public)
firewall-cmd --set-default-zone=public

# 向public作用域添加网卡
# 需要在网卡配置文件添加ZONE=public
firewall-cmd --zone=public --add-interface=em1

# 查询当前所有作用域分别开启的服务
firewall-cmd --list-all-zones

# 查看服务文件
ls /usr/lib/firewalld/services
Read more

Centos 安装vim及设置

[root@MyServer ~]# which vim
/usr/bin/vim
# rpm -qf /usr/bin/vim vim-enhanced-7.0.109-7.el5 # 如果返回的包是vim-minimal.i686,那么新功能都是不带的!
# yum -y remove vim* 
# yum search vim
# yum install vim-enhanced 
cd $HOME
touch .vimrc
vi .vimrc
# 粘贴如下内容
set encoding=utf-8			" 编码设置
set nocompatible            " 关闭 vi 兼容模式

if &t_Co > 1
     syntax enable
endif

# syntax=on					" 自动语法高亮
filetype on					" 打开文件类型检测功能
filetype plugin on			" 允许VIM加载文件类型插件
filetype indent on			" 不同文件类型采用不同缩进
set number                  " 显示行号
set ruler                   " 打开状态栏标尺
set shiftwidth=4            " 设定 << 和 >> 命令移动时的宽度为 4
 
set softtabstop=4           " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4               " 设定 tab 长度为 4
set nobackup                " 覆盖文件时不备份
set backupcopy=yes          " 设置备份时的行为为覆盖
set ignorecase smartcase    " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nowrapscan              " 禁止在搜索到文件两端时重新搜索
 
set incsearch               " 输入搜索内容时就显示搜索结果
set hlsearch                " 搜索时高亮显示被找到的文本
set noerrorbells            " 关闭错误信息响铃
set novisualbell            " 关闭使用可视响铃代替呼叫
set t_vb=                   " 置空错误铃声的终端代码
set showmatch               " 插入括号时,短暂地跳转到匹配的对应括号
set matchtime=2             " 短暂跳转到匹配括号的时间
 
# set magic                   " 设置魔术
set hidden                  " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set guioptions-=T           " 隐藏工具栏
set guioptions-=m           " 隐藏菜单栏
set smartindent             " 开启新行时使用智能自动缩进
 
set backspace=indent,eol,start         " 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1						   " 设定命令行的行数为 1
set laststatus=2					   " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\        "设置在状态行显示的信息

set helplang=cn					" 显示中文帮助
set autoread					" 设置当文件被改动时自动载入
# set completeopt=preview,menu	" 代码补全

如果提示以下内容:

No Syntax items defined for this buffer
Press ENTER or type command to continue

那是因为没有合适的高亮适配,在配置文件内加入以下内容即可

if &t_Co > 1
     syntax enable
endif

Centos 单网卡双IP配置

Centos 6.x 单网卡双IP配置

主IP设置

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=23.239.208.87
NETMASK=255.255.255.0
GATEWAY=23.239.208.1
onboot=YES

新ip配置

# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=23.239.208.175
NETMASK=255.255.255.0
GATEWAY=23.239.208.1
onboot=YES

新增ip,只需要在/etc/sysconfig/network-scripts/ifcfg-eth0基础上按ifcfg-eth0:0、ifcfg-eth0:1增加即可。

Centos 7.x 单网卡双IP配置

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO="static"
NAME=enp0s3
DEVICE=enp0s3
NM_CONTROLLED="no"
IPADDR0=192.168.1.10      # IP
IPADDR1=192.168.2.22
NETMASK=255.255.255.0   # 子网掩码
GATEWAY0=192.168.1.1     #网关
GATEWAY1=192.168.2.1
DNS1=119.29.29.29    # DNS
DNS2=223.5.5.5
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
PREFIX0=24
PREFIX2=16
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
UUID=59504c7c-11b3-40c5-86a8-7bfbe7527109
ONBOOT=yes

Centos 更改主机名

Centos 6.x

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.10.1
vi /etc/hosts 127.0.0.1
localhost localhost.localdomain server 

Centos 7.x

[root@localhost log]# hostnamectl status
   Static hostname: localhost.yvsy7
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 68a9a20de8ab4776a88eff33bd41b8ae
           Boot ID: 405ba16753364bad82f4d057a51b6499
    Virtualization: microsoft
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-123.el7.x86_64
      Architecture: x86_64
# 查看主机名
hostnamectl --static  # 静态
hostnamectl --transient #瞬态
hostnamectl --pretty  #灵活 

# 设置主机名
hostnamectl set-hostname server #同时修改三种状态主机名 
hostnamectl --static set-hostname server #永久修改主机名

Archives