Linux
About OpenSSL(Part 1)
关于OpenSSL社区
OpenSSL功能简介,OpenSSL外围包提供了如下三种功能:
1. 命令行工具,用来完成各种各样密码学相关的任务。例如,创建证书、解析证书、加密文件、加密算法测试等。
2. 全面的、可扩展的密码学库(libcrypto)。覆盖了大多数标准定义的加密算法,可用硬件扩展或者加速。
3. 符合SSL/TLS协议的加密通讯库(libssl)。提供客户端和服务端进行加密通讯的的能力。
继续阅读 “About OpenSSL(Part 1)”
Shell自动交互的三种方法
方法一
(echo "password";) | read input_pwd
方法二
read input_pwd << EOF password EOF
方法三
#!/usr/bin/expect spawn ssh root@192.168.0.1 expect "password:" send "123\n" interact
有趣的Shell字符串
#!/usr/bin/env bash str=$1 if [[ "$str" = "" ]]; then echo "1 empty" fi if [[ "$str" = " " ]]; then echo "2 empty" fi if [[ "$str" = "0" ]]; then echo "3 empty" fi if [[ "$str" = "00" ]]; then echo "4 empty" fi if [[ "$str" -eq 0 ]]; then echo "5 empty" fi if [[ "$str" -eq 000 ]]; then echo "6 empty" fi if [[ "$str" -eq '0' ]]; then echo "7 empty" fi if [[ "$str" -eq '00' ]]; then echo "8 empty" fi ## show results 1 empty 5 empty 6 empty 7 empty 8 empty
Linux启动过程与initramfs
Linux启动过程概述
这里先简单列一下 Linux 操作系统启动的全过程:
- 按下电脑的电源键后,电脑通电,BIOS启动;
- BIOS读取硬盘的MBR,运行启动扇区中的代码,旧系统往往需要自己写启动扇区,而新系统基本上由专用的启动软件接管了,在 Linux 世界中,目前都是用的 Grub2。由于启动扇区空间太小,放不下太复杂的代码逻辑,所以 Grub2 也使用了多阶段启动的策略;
- Grub2 负责将操作系统内核加载到内存,如果有必要,也会把 initramfs 文件加载到内存,然后将控制权交给内核;
- 内核进行初始化,内核的初始化过程结束后,就会把控制权交给
/init
程序,从此进入用户空间; - 因为内核先是将 initramfs 文件挂在为根文件系统,所以刚开始运行的
/init
程序其实是 initramfs 文件中的,所以该文件需要的重要的初始化脚本、内核模块、配置文件等,都位于 initramfs 文件中,这也是为什么很多时候我们修改了某些配置文件后,需要先更新 initramfs 文件再重启操作系统才会生效; - initramfs 文件中的
/init
程序负责挂载硬盘上的文件系统,然后再把根文件系统切换到硬盘上的根分区,再运行/sbin/init
程序,这时所有程序、配置文件、脚本都是使用的硬盘上的了,当然,网络文件系统也是同理。可以看出 init 程序的运行也是一个分阶段的过程; /sbin/init
程序负责系统的初始化、各种服务的运行、用户的登陆等等;- 如果需要运行图形界面,则
/sbin/init
程序会运行 Display Manager,在 Fedora 中是 gdm,在 Ubuntu 中是 lightdm。然后 Display Manager 负责启动整个图形界面。
Openssl使用方法及其加密算法编程
OpenSSL 是一个开源项目,其组成主要包括一下三个组件:
- openssl:多用途的命令行工具
- libcrypto:加密算法库
- libssl:加密模块应用库,实现了ssl及tls
openssl可以实现:秘钥证书管理、对称加密和非对称加密。 继续阅读 “Openssl使用方法及其加密算法编程”