Linux/Mac 密码生成器

现在应用越来越多,经常要输入密码,有的对密码的健壮性没有要求,有的需要大小写,特殊字符,数字,至少多少位等等,绞尽脑汁想不到好一点的密码。之前我一直在用 或者 1Password 的密码生成工具来生成密码,但是对于不使用这些密码保存工具的同学来说,难道就真的束手无策了吗?

好在 系统下(我不用 ),我们还是有办法可以生成复合要求的密码的。

Continue reading “Linux/Mac 密码生成器”

Linux/Mac 密码生成器

magedu pro 第七周作业

1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;

脚本内容如下:

#!/usr/bin/env 

loginshell=$( /etc/|cut -d: -f7);

loginct=0;
nologinct=0;

for i in $loginshell;do
  if [[ "$i" == "/sbin/nologin" ]]; then
    let nologinct+=1;
  else
    let loginct+=1;
  fi
done

 "可登录的用户数为:$loginct";
 "不可登录的用户数为:$nologinct";

执行结果如下:

[hzz@ ~]$ bash test.sh 
可登录的用户数为:5
不可登录的用户数为:20
[hzz@ ~]$

Continue reading “magedu pro 第七周作业”

magedu pro 第七周作业

Expect 远程执行检查函数

需安装 才能正常使用。

 install -y expect;
#!/usr/bin/env 
#expect 功能检查
set -e;

EXPECT_CHECK(){
  local EXUSR=${1}
  local EXHOST=${2}
  local EXPWD=${3}
  #ssh test
  EXP_RST=`
    expect -c "
      set timeout 300
      spawn ssh ${EXUSR}@${EXHOST} \" PASS\"
      expect {
        \"not known\" {send_user \"[exec  -e Erro:Host not known\n];exit\"}
        \"Connection refused\" {send_user \"[exec  -e Erro:Connection refused\n];exit\"}
        \"(yes/no)?\" {send \"yes\r\";exp_continue}
          \"password:\" {send \"${EXPWD}\r\";exp_continue}
        \"Permission denied\" {send_user \"[exec  -e Erro:Wrong \n];exit\"}
      }
    "| -E 'PASS|Erro'| -v echo| 's/\r//g;s/\n//g'
  `
  if [[ ${EXP_RST} && ${EXP_RST} == PASS ]]; then
    echo -e "\nEXPECT CHECK COMPLETE!\n";
    return 0;
  else
    echo -e "\n${EXUSR}@${EXHOST} EXPECT CHECK ERROR!\n";
    echo -e "\n${EXP_RST}\n";
    return 1;
  fi
}
Expect 远程执行检查函数

Bash 远程拷贝文件的函数

需安装 才能正常使用。

 install -y expect;
#!/usr/bin/env 
#远程拷贝文件
set -e;

#拷贝远程文件到本地
EXPECT_CP_R(){
  local EXUSR=${1}
  local EXHOST=${2}
  local EXPWD=${3}
  local R_FILE=${4}
  local L_FILE=${5}

  expect -c "
    set timeout 300
    spawn scp -qr ${EXUSR}@${EXHOST}:${R_FILE} ${L_FILE}
    expect {
      \"not known\" {send_user \"[exec  -e Erro:Host not known\n];exit\"}
      \"Connection refused\" {send_user \"[exec  -e Erro:Connection refused\n];exit\"}
      \"(yes/no)?\" {send \"yes\r\";exp_continue}
      \"password:\" {send \"${EXPWD}\r\";exp_continue}
      \"Permission denied\" {send_user \"[exec  -e Erro:Wrong \n];exit\"}
      \"]*\" {send \"\r\"}
      \">*\" {send \"\r\"}
    }
  "
}

#拷贝本地文件到远程
EXPECT_CP_L(){
  local EXUSR=${1}
  local EXHOST=${2}
  local EXPWD=${3}
  local L_FILE=${4}
  local R_FILE=${5}

  expect -c "
    set timeout 300
    spawn scp -qr ${L_FILE} ${EXUSR}@${EXHOST}:${R_FILE}
    expect {
      \"not known\" {send_user \"[exec  -e Erro:Host not known\n];exit\"}
      \"Connection refused\" {send_user \"[exec  -e Erro:Connection refused\n];exit\"}
      \"(yes/no)?\" {send \"yes\r\";exp_continue}
      \"password:\" {send \"${EXPWD}\r\";exp_continue}
      \"Permission denied\" {send_user \"[exec  -e Erro:Wrong passwd\n];exit\"}
      \"]*\" {send \"\r\"}
      \">*\" {send \"\r\"}
    }
  "
}
Bash 远程拷贝文件的函数

Bash 远程执行命令的函数

需安装 才能正常使用。

 install -y expect;
#!/usr/bin/env 
#远程执行命令
set -e;

EXPECT_SH(){
  local EXUSR=${1}
  local EXHOST=${2}
  local EXPWD=${3}
  local EXCMD=${4}
  expect -c "
    set timeout 300
    spawn ssh ${EXUSR}@${EXHOST}
    expect {
      \"not known\" {send_user \"[exec  -e Erro:Host not known\n];exit\"}
      \"Connection refused\" {send_user \"[exec  -e Erro:Connection refused\n];exit\"}
      \"(yes/no)?\" {send \"yes\r\";exp_continue}
      \"password:\" {send \"${EXPWD}\r\";exp_continue}
      \"Permission denied\" {send_user \"[exec  -e Erro:Wrong \n];exit\"}
      \"]*\" {send \"\r\"}
      \">*\" {send \"\r\"}
    }
    send \"${EXCMD}\rexit\r\"
    expect eof
  "
}
Bash 远程执行命令的函数

使用 kickstart 文件自动安装 CentOS

说到 ,就不能不说 anaconda。什么是 anaconda 呢?简单的来说,就是使用光盘安装系统时引导安装程序,而 ,就是 anaconda 的配置文件。

isolinux

在说 anaconda 是如何启动的之前,先来说说 isolinux 的启动流程和它的配置文件。

Continue reading “使用 kickstart 文件自动安装 CentOS”

使用 kickstart 文件自动安装 CentOS

passwd 和 shadow 文件详解

# /etc/passwd
# man 5 passwd

hzz:x:1000:1000::/home/hzz:/bin/
|   |   |   |   |   |       |
|---|---|---|---|---|-------|-------- 用户名
    |---|---|---|---|-------|-------- 密码(x为占位符,具体密码存储于shadow)
        |---|---|---|-------|-------- UID(用户ID)
            |---|---|-------|-------- GID(用户所属主组ID)
                |---|-------|-------- GECOS(用户注释信息)
                    |-------|-------- 用户主目录
                            |-------- 默认shell

Continue reading “passwd 和 shadow 文件详解”

passwd 和 shadow 文件详解