Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1427252
  • 博文数量: 430
  • 博客积分: 9995
  • 博客等级: 中将
  • 技术积分: 4388
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-24 18:04
文章存档

2013年(1)

2008年(2)

2007年(14)

2006年(413)

分类: LINUX

2006-05-25 14:30:20

通过 /dev/random/dev/urandom 可以获取由linux内核产生的随机数。下面的介绍将帮助那些使用 random 和 urandom 设备的程序(例如:OpenSSH)的运行。

在linux系统刚刚启动的时候,没有太多的互动操作,熵比较低,所以用来计算随机数的数据还处于一个可以预测的状态。这个就使linux每次产生的随即数有可能是相同的。为了克服这个现象,你需要在启动的时候调用上次关机时的熵比较高的信息,下面的init.d 脚本帮助自动完成这一系列工作。

cat > /etc/rc.d/init.d/random << "EOF"

#!/bin/sh
# $rc_base/init.d/random 开始

# 基于 sysklogd 脚本( LFS-3.1 或者更早版本 )
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
# Random script elements by Larry Lawrence

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Initializing kernel random number generator..."
                if [ -f /var/tmp/random-seed ]; then
	                cat /var/tmp/random-seed >/dev/urandom
		fi
		dd if=/dev/urandom of=/var/tmp/random-seed count=1 &>/dev/null
		evaluate_retval
		;;

	stop)
		echo "Saving random seed..."
		dd if=/dev/urandom of=/var/tmp/random-seed count=1 &>/dev/null
		evaluate_retval
		;;

        *)
                echo "Usage: $0 {start|stop}"
                exit 1
                ;;
esac

# $rc_base/init.d/random 结束
EOF
chmod 755 /etc/rc.d/init.d/random

在rc.d的相关目录中建立符号链接

cd /etc/rc.d/init.d &&
ln -sf ../init.d/random ../rc0.d/K45random &&
ln -sf ../init.d/random ../rc2.d/S25random &&
ln -sf ../init.d/random ../rc3.d/S25random &&
ln -sf ../init.d/random ../rc4.d/S25random &&
ln -sf ../init.d/random ../rc5.d/S25random &&
ln -sf ../init.d/random ../rc6.d/K45random

阅读(714) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~