2018-10-06 18:32:00 Feihongxiansen 阅读数 115

一、用户(user)的配置文件

1.1配置文件位置

/etc/passwd

1.2作用

记录用户的各种信息。

1.3文件每行的含义

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

 二、口令(密码)配置文件

2.1配置文件位置

/etc/shadow

2.2作用

记录各种密码。

2.3文件每行的含义

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

三、组(group)配置文件 

3.1配置文件位置 

/etc/group

3.2作用

记录Linux包含的组的信息。

3.3文件每行的含义

组名:口令:zu组标识号:组内用户表

2016-10-19 10:38:33 kai404 阅读数 926

某些情况下,自己或同事修改了某处系统设置,但由此所引发的问题可能一段时间以后才会暴露,由于记不清之前改过哪些文件、改了哪些内容,解决问题时可能走弯路。于是写了一个小脚本以特定频率来监控常见系统配置文件,如发生变化,则邮件通知管理员。

这里小发散一下,笔者习惯在内网单独弄一台server,给予其免秘钥登录所有服务器额权限,以便批量管理server。并且统计好一个文本文件,以”web1-x.x.x.x“每行一条记录的形式将所有server主机名和IP信息搜集于此。以备各种批量任务脚本引用。

注:这台内网管理server权限巨大,所以即便在内网,其密码复杂度、防火墙等安全措施也不容忽视。

下面是我当前监控的配置文件,记录于server_conf.txt文件

/var/spool/cron/root
/etc/fstab
/etc/sysconfig/network-scripts/ifcfg-em1
/etc/sysconfig/network-scripts/ifcfg-em2
/etc/sysconfig/network
/etc/hosts
/etc/resolv.conf
/etc/sudoers
/etc/selinux/config
/etc/sysconfig/iptables
/etc/ssh/sshd_config
/root/.ssh/authorized_keys

下面看脚本内容

#!/bin/sh

for ip_server in $(cat /shells/ips.txt)  #记录局域网的所有主机ip和主机名
  do
  (
  ip=$(echo $ip_server|awk -F '-' '{print $2}')   #获取各server IP
 #rsync -a -e  /shells/server_conf.txt $ip:/shells/    ###初次执行以及被监控的文件列表有修改时才需同步

  ssh $ip '
          tmp_dir=/var/log/check_conf;    ###创建用于存放‘上一次的’配置文件的目录

          if [ ! -d "$tmp_dir" ];
          then
              mkdir $tmp_dir;
          fi;

          for conf_file in $(cat /shells/server_conf.txt);     ###获取各配置文件绝对路径
          do
              conf_name="${conf_file##*/}"    ###获取文件名,不含目录.这个写法不太常用,某些awk无法使用的情况可以用它

              ###diff判断内容是否改变,并调整输出格式
              diff $conf_file  $tmp_dir/$conf_name.last > /dev/null;
              if [ $? != 0 ];
              then
                  echo -e "diff $conf_file  $conf_name.last\n-------------------------";
                  diff $conf_file  $tmp_dir/$conf_name.last;
              fi;
              ###将现在的配置文件同步到$tmp_dir以备下一次对比
              rsync -a $conf_file $tmp_dir/$conf_name.last > /dev/null;
          done;' &> /tmp/$ip.tmp

  if [ $(cat /tmp/$ip.tmp|wc -l) -gt 1 ];then
    mailx -s "$ip_server conf_file modified" monitor@xxxx.com < /tmp/$ip.tmp
  fi
  )&    ###以子shell形式达到for循环并行的效果
done
wait

效果截图
image
image

2020-01-12 22:31:50 qq_24503095 阅读数 37

/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
在这里插入图片描述
/etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group 文件
组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表
在这里插入图片描述

2017-03-20 11:53:24 qq_32936067 阅读数 311

前一段时间搭建了一个linux虚拟机,这几天没有事想在看看linux的知识,但是在敲date的时候发现时间不对,所以记录下解决的方法。

1、问题描述:

2、查看系统时区


输出:Fri, 23 Nec 2016 07:32:16 +0800  时区为 8

3、确保网络通畅,DNS正常解析,尝试同步互联网时间


4、查看系统时区配置文件


5、查看本地系统时区配置文件


6、尝试修改系统时区并根据系统提示选择正确的时区


7、再次查看系统时区和系统时间,已经正常显示了


8、重新启动linux再次查看date命令 ,经过上述的步骤之后我的可以正常显示了。


2019-05-20 15:37:39 weixin_40126236 阅读数 33

系统是centos6

一、修改时区

查看时间服务器是否是上海的:cat /etc/sysconfig/clock

如果不是则编辑该文件:vi /etc/sysconfig/clock

改成:ZONE="Asia/Shanghai"

我一般这样做了之后还是没有用,用date命令查看时,时间还是不是国内时间

二、同步时间服务器

编辑该文件:vi /etc/ntp.conf

在里面添加一句:server ntp1.aliyun.com iburst 

这一句的位置也不能变,这一句同步的是阿里云的时间服务器

再使用date命令查看时,时间就是国内的北京时间了

三、设置开启自启时间同步

以上的两个步骤可能会用用但是有时候重新开机就又会出现时间不准的问题

于是还必须设置ntp服务开机自启

centos6的命令:chkconfig ntpd on

centos7的命令:systemctl enabled ntpd

 

四、免密登录

服务器host01、host02

在host01上输入:ssh-keygen -t rsa                            不断输入回车,直到出现以下内容就好了(生成本地公钥)

在输入:              ssh-copy-id   host02                        在次输入host02的密码(用户名一样)将公钥复制到host02

验证:                  ssh host02                                       就会直接切换到host02

多个服务器之间的免密,只用将公钥复制过去,操作:ssh-copy-id   hostname 就OK

也需要自己对自己免密的,在host01上:ssh-copy-id   host01               (再输入host01密码)

没有更多推荐了,返回首页