日历

2017年十二月
« 9月    
 123
45678910
11121314151617
18192021222324
25262728293031

最近评论

    linux企业应用

    centos 7 图形界面 文本界面切换

    1,命令模式
    systemctl set-default multi-user.target

    2,图形模式
    systemctl set-default graphical.target

    接着 reboot 即可

    linux企业应用

    创建快照时出错:msg.snapshot.error-QUIESCINGERROR.

    今天克隆一台虚拟机,提示错误如下:
    创建快照时出错:msg.snapshot.error-QUIESCINGERROR.
    保存快照是出错:msg.snapshot.error-QUIESCINGERROR.

    解决办法是:启动服务Virtual disk,并设为自动启动,禁用vmware snapshot provider服务。

    再克隆就好了。

    linux企业应用

    WDCP被黑后查杀后门和恶意程序的方法步骤

    1、一台服务器受到攻击,据反映ps、lsof、ss、netstat被置换了,进入系统,执行ps命令,找到如下信息,正常情况下,应该只有第一条,而现在出现了两条,同时第二条也反映了这次入侵的特点,ps、lsof、ss、netstat这四个命令被备份到/usr/bin/dpkgd目录下!
    [root@localhost bin]# ps aux
    root      7941  0.0  0.0   1484   704 pts/2    S+   09:40   0:00 ps aux
    root      7942  0.0  0.0 110256  1144 pts/2    R+   09:40   0:00 /usr/bin/dpkgd/ps aux

    2、通过查看,/bin/ps这个命令文件的大小是1223123字节,通过下面的命令查找系统中同样大小的文件,有如下这些
    [root@localhost rc.d]# find / -size 1223123c
    /usr/bin/bsd-port/getty
    /usr/bin/.sshd
    /usr/sbin/lsof
    /usr/sbin/ss
    /etc/kblockd
    /bin/ps
    /bin/netstat
    find: “/proc/8145/task/8145/fd/5”: 没有那个文件或目录
    find: “/proc/8145/task/8145/fdinfo/5”: 没有那个文件或目录
    find: “/proc/8145/fd/5”: 没有那个文件或目录
    find: “/proc/8145/fdinfo/5”: 没有那个文件或目录

    3、布置一台同样版本的系统。受入侵的系统是Centos6.5,找来一台Centos6.4的系统与6.5的对比,发现命令文件的大小和6.5的不一样,所以需要布置一台和受入侵系统版本一致的对照系统。
    [root@localhost bin]# cd /usr/bin/dpkgd
    ps、lsof、ss、netstat这四个命令的大小如下:
    [root@localhost dpkgd]# ll -h
    总用量 436K
    -rwxr-xr-x 1 root root 143K 12月 24 18:21 lsof
    -rwxr-xr-x 1 root root 126K 12月 24 18:21 netstat
    -rwxr-xr-x 1 root root  86K 12月 24 18:21 ps
    -rwxr-xr-x 1 root root  74K 12月 24 18:21 ss
    [root@localhost dpkgd]# which ps
    /bin/ps
    [root@localhost dpkgd]# which lsof
    /usr/sbin/lsof
    [root@localhost dpkgd]# which netstat
    /bin/netstat
    [root@localhost dpkgd]# which ss
    /usr/sbin/ss

    5、受攻击的服务器产生大量的流量,所以需要安装nethogs网络流量监控工具,以下部分是安装nethogs的步骤
    tar zxf nethogs-0.8.0.tar.gz
    d nethogs
    make && make install
    yum -y install make
    yum -y install gcc gcc-c++
    yum -y install  libpcap-devel
    make
    make install

    6、编译完成后,直接执行nethogs命令,可以看到/etc/kblockd产生了主要的网络流量,值得怀疑,与对照系统进行对比,对照系统下没有这个进程,且/etc/kblockd的大小和ps等4个命令一样,所以怀疑kblocked是主病毒运行程序,ps、lsof、ss、netstat这四个命令是用来打掩护的。
    [root@localhost nethogs]# nethogs
    NetHogs version 0.8.0

    PID USER     PROGRAM                                   DEV        SENT      RECEIVED
    5576  root     /etc/kblockd                              eth0       0.104       0.107 KB/sec
    24019 root     sshd: root@pts/2                          eth0       0.433       0.052 KB/sec
    ?     root     unknown TCP                                          0.000       0.000 KB/sec

    7、杀死并删除/etc/kblockd程序
    [root@localhost nethogs]# kill -9 5576
    [root@localhost nethogs]# rm -f /etc/kblockd
    rm: 无法删除”/etc/kblockd”: 不允许的操作
    [root@localhost nethogs]# lsattr /etc/kblockd
    s—ia——-e- /etc/kblockd
    [root@localhost nethogs]# chattr -ia /etc/kblockd
    [root@localhost nethogs]# lsattr /etc/kblockd
    s————e- /etc/kblockd
    [root@localhost nethogs]# rm -f /etc/kblockd

    8、使用病毒备份的四个文件,替换四个病毒文件
    [root@localhost nethogs]# cd /usr/bin/dpkgd/
    [root@localhost dpkgd]# cp ps /bin/ps
    cp:是否覆盖”/bin/ps”? y
    [root@localhost dpkgd]# cp lsof /usr/sbin/lsof
    cp:是否覆盖”/usr/sbin/lsof”? y
    [root@localhost dpkgd]# cp netstat /bin/netstat
    cp:是否覆盖”/bin/netstat”? y
    [root@localhost dpkgd]# cp ss /usr/sbin/ss
    cp:是否覆盖”/usr/sbin/ss”? y

    9、病毒文件需要开机启动,所以,应该有相应的脚本,使用下面方式进行查找
    [root@localhost ~]# cd /etc/init.d
    [root@localhost init.d]# find ./ -type f -print | xargs grep “/etc/kblockd”
    ./DbSecuritySpt:/etc/kblockd
    [root@localhost init.d]# cat DbSecuritySpt
    #!/bin/bash
    /etc/kblockd
    可以肯定DbSecuritySpt,就是开机启动文件了,删除之。
    顺带查看一下/etc/init.d目录下个文件
    [root@localhost init.d]# ll -rt
    -rwxr-xr-x. 1 root root  25 apr 25 15:05 DbSecuritySpt
    -rwxr-xr-x. 1 root root  36 apr 25 15:05 selinux
    上面的selinux竟让和DbSecuritySpt同时建立的!查看他的内容,可以判断也是病毒启动脚本了。
    [root@localhost init.d]# cat selinux
    #!/bin/bash
    /usr/bin/bsd-port/getty
    [root@localhost init.d]# rm -f DbSecuritySpt
    [root@localhost init.d]# rm -f selinux
    [root@localhost ~]# find /etc -name *DbSecuritySpt
    /etc/rc.d/init.d/DbSecuritySpt
    /etc/rc.d/rc5.d/S97DbSecuritySpt
    /etc/rc.d/rc2.d/S97DbSecuritySpt
    /etc/rc.d/rc4.d/S97DbSecuritySpt
    /etc/rc.d/rc3.d/S97DbSecuritySpt
    /etc/rc.d/rc1.d/S97DbSecuritySpt
    [root@localhost rc.d]# find ./ -name *DbSecuritySpt -exec rm -f {} \;
    [root@localhost rc.d]# find ./ -name *selinux
    [root@localhost rc.d]# find ./ -name *selinux | xargs rm -f
    确认删除完成。
    [root@localhost rc.d]# find ./ -name *DbSecuritySpt
    [root@localhost rc.d]# find ./ -name *selinux

    10、 查找下系统中和病毒大小一致的文件,删除。
    [root@localhost rc.d]# find / -size 1223123c
    /usr/bin/bsd-port/getty
    /usr/bin/.sshd
    find: “/proc/8145/task/8145/fd/5”: 没有那个文件或目录
    find: “/proc/8145/task/8145/fdinfo/5”: 没有那个文件或目录
    find: “/proc/8145/fd/5”: 没有那个文件或目录
    find: “/proc/8145/fdinfo/5”: 没有那个文件或目录
    [root@localhost rc.d]# rm -f /usr/bin/bsd-port/getty
    [root@localhost rc.d]# rm -f /usr/bin/.sshd
    确认没有和病毒大小一样的文件
    [root@localhost rc.d]# find / -size 1223123c

    11、reboot,进入系统执行nethogs,查看带宽占用情况,确认没有问题,就可以了。

    linux企业应用

    NetworkManager导致网络错误

    1、今天一台服务器网络连接不上了,经查看,eth0和eth1做了bonding,使用stat命令查看和网络配置相关的文件,也没有查看到网络配置文件被修改过。
    /etc/sysconfig/network-scripts/ifcfg-bond0
    /etc/sysconfig/network-scripts/ifcfg-eth0
    /etc/sysconfig/network-scripts/ifcfg-eth1
    /etc/modprobe.d/modprob.conf
    /etc/rc.d/rc.local

    2、重新启动网络,执行命令service network restart,可以看到eth0,eth1等都能启动,但是bond0启动报错
    Bringing up interface bond0: Error:Connection activation failed:The connection not for this device.

    3、执行 chkconfig –list | grep NetworkManager
    看到NetworkManager 这货居然存在并启动了。果断停止 service NetworkManager stop

    4、再次执行service network restart,可以看到bond0启动正常。

    5、为防止NetworkManager再次启动,执行chkconfig –level 2345 NetworkManager off。
    永久关闭NetworkManager,这个软件很不好用。

    linux企业应用

    linux系统无法引导无法执行grub-install的处理过程

    1、有一台linux主机重启后,连接不上,打开终端,系统停留在grub界面,grub>;
    2、在命令行,输入find (hd0,0),敲tab键,没找到文件;

    3、看到上面的输出,猜测系统应该是完全损坏了;
    4、使用光盘进入拯救模式,语言选择默认,键盘选择默认,网络恢复选择NO,选择continue,或read only,剩下的选择OK,继续就行
    5、进入sh-4.1# ,ls /mnt/sysimage/ 显示为根目录的文件,发现各文件都在;输入 chroot /mnt/sysimage,回车;
    6、执行grub-install  /dev/sda 命令,重新安装grub,显示一下错误:/boot/grub/stage1 not read correctly
    7、尝试修改/boot/grub/stage1的名字,系统提示只读,网上搜索/boot/grub/stage1 not read correctly的错误原因,提示是/etc/fstab和/etc/mtab有问题,检查发现这2个文件没有特殊的地方;
    8、按照文件系统错误的思想,查看各磁盘信息,发现 /boot 分区 500M左右,fdisk查看/dev/sda发现,sda1是LVM格式;CentOS系统的boot分区一般不选择LVM格式,而且这台服务器有2个磁盘sda和sdb,各200G,从df命令显示来看,进行过LVM扩容的操作,所以怀疑/dev/sda1的文件系统的ID应该不是8e,而是83
    9、修改/dev/sda1的文件系统ID,依次执行,fdisk /dev/sda,p查看分区,/boot是sda1,分区号应该是1,执行t命令修改文件系统ID,分区输入1,修改成的文件系统ID输入 83,输入w保存退出,exit退出sh-4.1,执行reboot
    10、系统启动成功。

    linux企业应用

    计算机重名导致计算机很卡

    今天一台计算机很慢,看系统日志,net.pipe listener adapter无法开启,另外还有2个相关的服务启动存在错误。在系统日志中,还有一条,就是系统的名字,网络中已经有其他的服务器使用了相同的名字,导致本机不能使用该名字。

    修改就算计名字,然后重新启动,系统流畅了,也没有net.pipe listener adapter无法开启的错误了。

    linux企业应用

    Centos6.5解决无法本地登录的一个实例

    今天一客户服务器在机房无法本地登录,但是通过ssh可以远程登录,查看登录验证文件,内容如下
    [root@XX02 pam.d]# cat /etc/pam.d/login
    #%PAM-1.0
    auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
    auth       include      system-auth
    account    required     pam_nologin.so
    account    include      system-auth
    password   include      system-auth
    # pam_selinux.so close should be the first session rule
    session    required     pam_selinux.so close
    session    required     pam_loginuid.so
    session    optional     pam_console.so
    # pam_selinux.so open should only be followed by sessions to be executed in the user context
    session    required     pam_selinux.so open
    session    required     pam_namespace.so
    session    optional     pam_keyinit.so force revoke
    session    include      system-auth
    -session   optional     pam_ck_connector.so
    session required pam_limis.so
    通过仔细观察,发现有上面一行有错误,pam_limits.so写成了pam_limis.so,怀疑就是因为这个地方写错了,导致root无法本地登录,查看该文件修改时间
    [root@XX02 pam.d]# stat /etc/pam.d/login
    File: `/etc/pam.d/login’
    Size: 758           Blocks: 8          IO Block: 4096   regular file
    Device: 802h/2050d    Inode: 1180811     Links: 1
    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2016-12-19 18:20:33.408598778 +0800
    Modify: 2016-12-19 15:42:25.915751484 +0800
    Change: 2016-12-19 15:42:25.931751029 +0800
    发现该文件在昨天下午15:42:25修改过,电话联系客户,客户承认在这个时间段对登录验证文件进行修改过。
    将session required pam_limis.so修改为session required pam_limits.so后,到机房验证,可以在本地登录了。

    继续阅读 Centos6.5解决无法本地登录的一个实例

    linux企业应用

    centos7 welcome to emergency mode问题处理

    今天一台centos无法正常启动,登录界面显示如下内容:
    piix4_smbus XXXXX:Host SMBus controller not enabled!
    end_request: I/O error,dev fd0,sector 0

    首先解决第一个问题,处理过程如下:
    [root@node1 ~]# lsmod | grep i2c_piix4
    i2c_piix4              11232  0
    i2c_core               29132  1 i2c_piix4
    [root@node1 ~]# vi /etc/modprobe.d/blacklist.conf    添加一下信息:
    blacklist i2c_piix4
    [root@node1 ~]# systemctl reboot
    重新启动后,piix4的报错没有了,但是fd0的报错还在,这个需要修改BIOS,再次重新启动系统,进入BIOS
    在Main页,将软驱启动设置为Disabled,保存退出,再次启动,发现end_request: I/O error,dev fd0,sector 0的错误提示没有了,但是系统依然在emergency mode。
    输入用户密码进入系统,执行命令df -h 发现系统之挂载了/boot  和  /  分区,cat /etc/fstab 发现有4个分区进行挂载,swap分区也许挂载了,也就是说有一个分区/dev/sdb1没有挂载正确,错误的信息如下:
    /dev/sdb1  /storage xfs 0 0

    [root@node1 ~]# stat /etc/fstab  发现该文件在客户报错前修改过
    于是将
    /dev/sdb1  /storage xfs 0 0
    修改为:
    /dev/sdb1  /storage xfs defaults 0 0
    保存退出。
    重新启动系统,可以正确进入提示界面。问题解决。

    linux视频

    Bringing up interface eth0: Device eth0 does not seem to be present

    centos关机后,使用vmconvert迁移,网卡不能启动
    经查看,ifcfg-eth0修改为ifcfg-eth1,配置文件里eth0也修改为eth1。
    为启动网卡,可以进行一下操作:
    1、修改ifcfg-eth1的内容,将HWADDR一行注释掉,并将配置文件里的eth1改为eth0,将ifcfg-eth1修改为ifcfg-eth0;
    2、删除/etc/udev/rules.d/70-persistend-net.rules
    3、reboot
    方法2:
    1、查看/etc/udev/rules.d/70-persistend-net.rules的内容,记住NAME是eth0,还是eth1,或ethn,记录ATTR(address)的地址
    2、修改ifcfg-eth1的内容,将HWADDR修改为上面记录的ATTR地址;
    3、如果ifcfg-eth1的网卡名字不一致,则修改为上面记录的名字,并修改ifcfg-eth1的中的eth1的名字,与上面记录的一直;
    4、reboot
    上面的两个方法应该可以启动网卡。

    linux企业应用

    Linux一条语句显示IP

    centos 6下,一条语句显示IP地址:
    [root@FTPSvr01 ~]# ifconfig eth0|awk -F'[ :]+’  ‘/t a/{print $4}’
    111.222.123.234
    简要解释:
    ‘/ t a/’是过滤包含t a的行
    -F'[ :]+’  以多个连续空格或冒号为分隔符
    {print $4}打印第四列

    或者使用语句: ifconfig eth0|awk ‘/inet addr/{print $2}’| awk -F: ‘{print $2}’

    在centos 7 下,一条语句显示IP地址,还不够完善
    [root@TestCentOS7 ~]# ip addr show | awk ‘/inet /{print $2}’
    127.0.0.1/8
    172.33.44.55/24

    用下面这条语句,可以显示想要的IP了:
    [root@TestCentOS7 ~]# ip addr show | awk -F'[ /]+’ ‘/global /{print $3}’
    111.222.123.234

    linux企业应用

    工具栏点击没有反应问题处理

    今天一个的windows服务器出现了一个问题,窗口的东西可以动,可以编辑,但是工具栏无论右键,或者左键都没有反应。
    处理方法:启动任务管理器,点进程,找到explorer.exe,点击结束进程,
    然后点击文件,新建任务,点击浏览,在C:\Windows目录下找到 explorer,点击打开,回到创建新任务,点击确定,桌面和工具栏都可以使用了。
    linux企业应用

    利用Nmap端口扫描

    安装nmap:yum -y install nmap

    命令:nmap -v -sT  IPAddr

    [root@TestCentOS7 ~]# nmap -v -sT IPADDRESS

    Starting Nmap 6.40 ( http://nmap.org ) at 2016-07-15 15:16 CST
    Initiating Ping Scan at 15:16
    Scanning IPADDRESS [4 ports]
    Completed Ping Scan at 15:16, 1.01s elapsed (1 total hosts)
    Initiating Parallel DNS resolution of 1 host. at 15:16
    Completed Parallel DNS resolution of 1 host. at 15:16, 6.50s elapsed
    Initiating Connect Scan at 15:16
    Scanning IPADDRESS [1000 ports]
    Discovered open port 135/tcp on IPADDRESS
    Discovered open port 445/tcp on IPADDRESS
    Discovered open port 139/tcp on IPADDRESS
    Discovered open port 49158/tcp on IPADDRESS
    Discovered open port 49153/tcp on IPADDRESS
    Discovered open port 33899/tcp on IPADDRESS
    Discovered open port 49155/tcp on IPADDRESS
    Discovered open port 49154/tcp on IPADDRESS
    Discovered open port 49152/tcp on IPADDRESS
    Discovered open port 49160/tcp on IPADDRESS
    Completed Connect Scan at 15:16, 2.72s elapsed (1000 total ports)
    Nmap scan report for IPADDRESS
    Host is up (0.015s latency).
    Not shown: 990 closed ports
    PORT      STATE SERVICE
    135/tcp   open  msrpc
    139/tcp   open  netbios-ssn
    445/tcp   open  microsoft-ds
    33899/tcp open  unknown
    49152/tcp open  unknown
    49153/tcp open  unknown
    49154/tcp open  unknown
    49155/tcp open  unknown
    49158/tcp open  unknown
    49160/tcp open  unknown

    Read data files from: /usr/bin/../share/nmap
    Nmap done: 1 IP address (1 host up) scanned in 10.32 seconds
    Raw packets sent: 4 (152B) | Rcvd: 1 (28B)

    linux企业应用

    Linux运维工程师入门须掌握的10个技术点

    linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 。。。。。

    工具如下:

    1、linux系统基础,这个不用说了,是基础中的基础,连这个都不会就别干了,参考书籍,可以看鸟哥linux基础篇,至少要掌握这书60%内容,没必须全部掌握,但基本命令总得会吧

    2、网络服务,服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行,LAMP和LNMP是必须要熟练,我所指的不是光光会搭建,而是要很熟悉里面的相当配置才行,因为公司最关键的绝对是WEB服务 器,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,至少有些公司还会用tomcat,这个也最好学一下。其实网络服务方面不用 太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯 定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。

    这面2点只是基础,也是必要条件,不能说是工具,下以才是真正的要掌握的工具。

    3、shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一 些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了,别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义, 写系统脚本才是最有意义,而另一个脚本语言是可选的,一般是3P,即python, perl和php,php就不需要考虑了,除非你要做开发,我个人建议学python会比较好,难实现自动化运维,perl是文本处理很强大,反正这两个 学一个就行了。

    4、sed和awk工具,必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。

    5、文本处理命令,sort , tr , cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。

    6、数据库,首选mysql,别问我为什么不学sqlserver和oracle,因为linux用得最多绝对是mysql,增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。

    7、防火墙,不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。

    8、监控工具,十分十分重要,我个人建议,最好学这3个,cacti,nagios,zibbix,企业用得最多应该是nagios和 zibbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。

    9、集群和热备,这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多, 最好学是LVS,这是必学,最好也学学nginx集群,反向代理,还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,mysql热备也要 学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。

    10、数据备份,不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, dump, rsync等,最好多了解一下。

    算了,说到这10点已经够你受了,应该可以入门了,因为有些技术会比较难学,例如apache和nginx中还有些很重要的技术,如系统调优和服务 优化,还有程序优化,这些在没接触工作前很难学习到的,所以先把这10点学了吧,估计要学熟至少3个月不止,就脚本那部分已经让你很吃力了,我建议是先学 熟shell,等工作后再学另一门脚本语言,这样会比较好。

    以上就是踏入linux运维工程师需要掌握的工具,其实还有很多工具要掌握的,但你在学习环境中是很难学到,最 后我再提醒一下,这里所指的工具相当于技能,而不是像windows或ubuntu那些图形化工具,那些工具没用的,还有,学linux就别装图形界面, 这样虚拟机就不用吃太多内存,而且绝对不建议在真机上装linux,根本达不到学习效果。

    linux企业应用

    passwd命令提示: 鉴定令牌操作错误

    使用passwd修改密码报错: 鉴定令牌操作错误。下面对该错误可能出现的四种情况进行分析:

    第一种:/usr/bin/passwd 的权限中没有添加s即SUID特殊权限
    即:-rwxr-xr-x. 1 root root 27000 8月  22 2010 /usr/bin/passwd
    解决方案:chmod u+s /usr/bin/passwd
    SUID的功能简单的说就是让组用户或其他用户在执行该文件是拥有文件所有者(own)权限,这里就是需要获取w(写)权限,这样才能将新密码写到/etc/shadow文件中 切记:SUID只对二进制的文件有效(系统中的一些命令),不能用在脚本上(script),因为脚本还是把很多的程序集合到一起来执行,而不是脚本自身在执行。同样,SUID也不能放到目录上,放上也是无效的。

    第二种:
    [root@Svr04 ~]# lsattr /etc/shadow
    —-i——–e- /etc/shadow(文件的隐藏属性,具体不扩展),这里需要将i去掉,用chattr -i /etc/shadow
    同样/etc/group /etc/passwd也可能出现该情况。本次是用户/etc/shadow不能扩展,把i属性去掉就可以了。

    第三种:
    虽然出现passwd: 鉴定令牌操作错误,但是密码已经修改了,可以通过cat /etc/shadow去查看,只是该用户被锁定了,这里需要解锁。
    解决方案:
    usermod +U somebody将该用户解锁(/etc/shadow文件中该用户所属第二栏有几个!(惊叹号)就执行几次该指令)

    第四种:
    主机磁盘已满,修改密码是提示:鉴定令牌操作错误
    解决方法:清理磁盘后重新修改密码

    linux企业应用

    CentOS下使用MyTop实时监控MySQL

    MyTop是一个类似Linux下的top命令风格的MySQL监控工具,MyTop采用Perl开发。MyTop可以监控MySQL当前的连接用户和正在执行的命令。

    MyTop的项目页面为:http://jeremy.zawodny.com/mysql/mytop/

    MyTop安装
    $ yum -y install mytop #epel源

    MyTop命令参数

    $ man mytop
    -u / –user <USERNAME>:指定 username,预设是 root
    -p / –pass / –password <PASSWORD>:指定password,预设是none
    -h / –host <HOSTNAME[:PORT]>:指定 MySQL server的hostname,预设是localhost
    -P / –port <PORT>:指定连接 MySQL server的port,预设是3306
    -s / –delay <SECONDS>:更新的秒数,预设是5秒
    -d / –db / –database <DATABASE>:指定连接的资料库,预设是test
    -b / –batch / –batchmode:指定为 batch mode,每次更新不会清除旧的显示结果,会将更新资料显示上最上方,预设是unset
    -S / –socket <PATH_TO_SOCKET>:指定使用MySQL socket直接连线,而不使用TCP/IP连线,预设是none(当mytop和MySQL在同一台时才能使用)
    –header or -noheader:是否要显示表头,预设是header
    –color or –nocolor:是否要使用颜色,预设是color
    -i / -idle or -noidle:idle 的thread是否要出现在清单上,预设是idle

    注意: 因.mytop内有MySQL server的密码,请注意档案权限。
    MyTop的使用

    命令行运行
    $ mytop -uroot -pmysql -d wordpress -h 127.0.0.1

    通过配置文件运行
    MyTop配置文件在~/.mytop,也可在~/.my.cnf文件中配置用户名和密码。

    $ vim ~/.mytop
    user=root
    pass=mysql
    host=localhost
    db=wordpress
    delay=5
    port=3306
    socket=/var/lib/mysql//mysql.sock
    batchmode=0
    header=1
    color=1
    idle=1

    注意:socket设置和my.cnf里的路径一样,一般MyTop和Mysql在同一台机器。

    MyTop远端监控
    若将MyTop装在另一台机器上时,需要设定MySQL Server上的权限才能远端监控
    在MySQL Server上新增一个帐号,并给它Process的权限

    $ mysql -u root -p
    mysql> grant process on *.* to <REMOTE_USERNAME>@<REMOTE_IP> identified by ‘<PASSWORD>’;
    mysql> flush privileges;
    mysql> exit

    在安装MyTop的机器上,用参数指定或修改配置文件的设定。

    参数指定
    $ mytop -u <REMOTE_USERNAME> -p <PASSWORD> -h <MYSQL_SERVER_IP>

    修改配置文件
    $ vim ~/.mytop
    user=<REMOTE_USERNAME>
    pass=<PASSWORD>
    host=<MYSQL_SERVER_IP>

    MyTop快捷键
    s:设定更新时间
    p:暂停画面更新
    q:离开
    u:只看某个使用者的thread
    o:反转排列顺序

    监控画面参数解释
    Mytop和Linux下面的top命令展现的结果类似,下面展示了每个线程的当前的状态并且是动态变化。

    $ mytop -uroot -pmysql -d wordpress -h 127.0.0.1

    MySQL on 127.0.0.1 (5.6.29-log)                                                  up 0+05:44:42 [16:51:31]
    Queries: 654.0  qps:    0 Slow:     0.0         Se/In/Up/De(%):    00/00/00/00
    qps now:    0 Slow qps: 0.0  Threads:    1 (   1/   0) 00/00/00/00
    Key Efficiency: 100.0%  Bps in/out:   0.8/160.4   Now in/out:   9.7/ 2.0k

    Id      User         Host/IP         DB      Time    Cmd Query or State
    —      —-         ——-         —      —-    — ———-
    8      root       localhost  wordpress         0  Query show full processlist

    第一行显示了主机名称,还有至今MySQL的运行时间(以days hour:minutes:seconds为格式)。

    第二、三行的显示了Qps:每秒请求书、Slow:慢查询的数量、Se/In/Up/De(%):读写比例。

    第四行的Key Efficiency就是Myisam的键值缓存区使用比例(缓存命中率),Bps:目前网络进出流量。

    最下方的区域就是目前链接到数据库的各个线程,你可以按k杀死一个线程,或者按f了解特定线程的信息。

    linux企业应用

    ftp自动上传下载文件脚本

    FTP自动登录批量下载文件

    #!/bin/bash
    #
    ftp -v -n IPADDR << EOF
    user youname password
    binary
    cd test
    lcd /home/
    prompt
    mget *
    close
    bye
    EOF

     

    FTP自动登录批量上传文件
    #!/bin/bash
    #
    ftp -v -n IPADDR << EOF
    user youname password
    binary
    cd test
    lcd /home
    prompt
    mput *.txt
    bye
    EOF

    linux视频

    Systemd入门命令

    CentOS 7使用Systemd替换了SysV。Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。

    Systemd的特性

    支持并行化任务
    同时采用socket式与D-Bus总线式激活服务
    按需启动守护进程(daemon)
    利用Linux的cgroups监视进程
    支持快照和系统恢复
    维护挂载点和自动挂载点
    各服务间基于依赖关系进行精密控制

    什么是init系统 继续阅读 Systemd入门命令

    linux企业应用

    CentOS 7下使用FirewallD构建防火墙常用命令

    FirewallD介绍

    FirewallD提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4, IPv6 防火墙设置以及以太网桥接,也支持允许服务或者应用程序直接添加防火墙规则的接口。FirewallD拥有运行时配置和永久配置选项。

    采用firewall-cmd(command)或firewall-config(gui)来动态的管理kernel netfilter的临时或永久的接口规则,并实时生效而无需重启服务。

    FirewallD特性

    Zone

    FirewallD使用区域(zone)的概念来管理,网络区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。每个网卡对应一个zone,这些zone的配置文件可在/usr/lib/firewalld/zones/下看到,默认的是public。

    Zone提供了以下几个区域

    drop

    任何流入网络的包都被丢弃,不作出任何响应,只允许流出的网络连接。即使开放了某些服务(比如http),这些服务的数据也是不允许通过的。

    block
    任何进入的网络连接都被拒绝,并返回IPv4的icmp-host-prohibited报文或者IPv6的icmp6-adm-prohibited报文。只允许由该系统初始化的网络连接。

    public(默认)
    用以可以公开的部分。你认为网络中其他的计算机不可信并且可能伤害你的计算机,只允许选中的服务通过。

    external
    用在路由器等启用伪装的外部网络。你认为网络中其他的计算机不可信并且可能伤害你的计算机,只允许选中的服务通过。
    继续阅读 CentOS 7下使用FirewallD构建防火墙常用命令

    linux企业应用

    blocked for more than 120 seconds

    “echo 0> /proc/sys/kernel/hung_task_timeout_secs” disables this message
    INFO: task init:106 blocked for more than 120 seconds
    “echo 0> /proc/sys/kernel/hung_task_timeout_secs” disables this message
    INFO: task udevd:91 blocked for more than 120 seconds

    linux会设置40%的可用内存用来做系统cache,当flush数据时,cache数据由于和IO同步问题导致超时(120s),可将40%减小到10%,避免超时。为永久避免这个问题可修改系统配置文件:

    # vim /etc/sysctrl.conf
    vm.dirty_background_ratio = 5
    vm.dirty_ratio = 10

    linux企业应用

    Redhat 6 利用Centos 6的源安装更新bash

    很久没有使用rhel了,今天使用rhel,发现自带的bash无法升级,只能使用centos的了。

    修改/etc/yum.repos.d/rhel-source.repo文件的内容,修改为如下:

     

    # CentOS-Base.repo
    #
    # The mirror system uses the connecting IP address of the client and the
    # update status of each mirror to pick mirrors that are updated to and
    # geographically close to the client.  You should use this for CentOS updates
    # unless you are manually picking other mirrors.
    #
    # If the mirrorlist= does not work for you, as a fall back you can try the
    # remarked out baseurl= line instead.
    #
    #

    [base]
    name=CentOS-6-Base-mirrors.ustc.edu.cn
    baseurl=http://mirrors.ustc.edu.cn/centos/6/os/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=os
    gpgcheck=1
    gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-6

    #released updates
    [updates]
    name=CentOS-6-Updates-mirrors.ustc.edu.cn
    baseurl=http://mirrors.ustc.edu.cn/centos/6/updates/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=updates
    gpgcheck=1
    gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-6

    #additional packages that may be useful
    [extras]
    name=CentOS-6-Extras-mirrors.ustc.edu.cn
    baseurl=http://mirrors.ustc.edu.cn/centos/6/extras/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=extras
    gpgcheck=1
    gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-6

    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-6-Plus-mirrors.ustc.edu.cn
    baseurl=http://mirrors.ustc.edu.cn/centos/6/centosplus/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=centosplus
    gpgcheck=1
    enabled=0
    gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-6

    #contrib – packages by Centos Users
    [contrib]
    name=CentOS-6-Contrib-mirrors.ustc.edu.cn
    baseurl=http://mirrors.ustc.edu.cn/centos/6/contrib/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=contrib
    gpgcheck=1
    enabled=0
    gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-6

     

    然后执行:yum makecache

    再执行:yum -y update bash

    运行:env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”               只返回 this is a test,就说明bash没有漏洞了。