shell給授權檔案新增私鑰並修改訪問修改時間

devilcry13發表於2019-01-02

新增私鑰

L_AUTH_FL='/home/user1/.ssh/authorized_keys'
L_KEY_FL='/home/user1/temp/rsa_key'

#獲取原始檔案訪問時間
ATM0=`stat ${L_AUTH_FL} | grep "Access" | tail -1 |awk -F" " '{print $2$3}'|cut -d'.' -f1`
ATM1=`echo ${ATM0//-/}`
ATM2=`echo ${ATM1/:/}`
ATM=`echo ${ATM2/:/.}`

#獲取原始檔案更新時間
MTM0=`stat ${L_AUTH_FL} | grep "Modify" | tail -1 |awk -F" " '{print $2$3}'|cut -d'.' -f1`
MTM1=`echo ${MTM0//-/}`
MTM2=`echo ${MTM1/:/}`
MTM=`echo ${MTM2/:/.}`

#判斷授權檔案中是否包含私鑰,如不包含則新增
grep -f ${L_KEY_FL} -q ${L_AUTH_FL}
[ $? -ne 0 ] && cat ${L_KEY_FL} >>${L_AUTH_FL}

#修改私鑰檔案訪問時間及修改時間
touch -a -t ${ATM} ${L_AUTH_FL}
touch -m -t ${MTM} ${L_AUTH_FL}

移除私鑰

L_AUTH_FL='/home/user1/.ssh/authorized_keys'
L_KEY_FL='/home/user1/temp/rsa_key'
L_TMP_FL='/home/user1/tempFile'

#獲取原始檔案訪問時間
ATM0=`stat ${L_AUTH_FL} | grep "Access" | tail -1 |awk -F" " '{print $2$3}'|cut -d'.' -f1`
ATM1=`echo ${ATM0//-/}`
ATM2=`echo ${ATM1/:/}`
ATM=`echo ${ATM2/:/.}`

#獲取原始檔案更新時間
MTM0=`stat ${L_AUTH_FL} | grep "Modify" | tail -1 |awk -F" " '{print $2$3}'|cut -d'.' -f1`
MTM1=`echo ${MTM0//-/}`
MTM2=`echo ${MTM1/:/}`
MTM=`echo ${MTM2/:/.}`

#生成移除私鑰後的新檔案,並覆蓋老檔案,刪除臨時檔案
grep -Fv -f ${L_KEY_FL} ${L_AUTH_FL}>${L_TMP_FL}
cp ${L_TMP_FL} ${L_AUTH_FL}
/bin/rm -rf ${L_TMP_FL}

#修改私鑰檔案訪問時間及修改時間
touch -a -t ${ATM} ${L_AUTH_FL}
touch -m -t ${MTM} ${L_AUTH_FL}

相關文章