Skip to content

OpenBSD上查看文件系统的块大小

在OpenBSD上,使用disklabel $disk可以看到文件系统或者说分区的block size。 下面的输出中,bsize一栏对应的就是该分区的block size。OpenBSD上默认是16KB (16384). #disklabel sd0 # /dev/rsd0c: type: SCSI disk: SCSI disk …… 16 partitions: # size offset fstype [fsize bsize cpg] a: 19470688 64 4.2BSD 2048 16384 1 # / b: 1494073 19470752 swap # none…

Read more

Putty设置OpenSSH公钥验证

OpenSSH公钥验证又称为无密码验证。DragonFlyBSD默认只接受公钥验证,今天就简单谈一下如何使用Putty以公钥验证的方式登录DragonFlyBSD。 设置公钥验证的逻辑很简单: 1. 首先生成一对密钥(公、私密钥) 2. 将公钥的内容放入目标用户主目录下.ssh/authorized_keys文件中 3. 使用SSH客户端登录时,指定使用相应的私钥进行验证 再来谈一下实际的设置。假定的场景是,在一台Windows系统上,使用Putty登录到DragonFlyBSD机器上。 由于Putty和OpenSSH的密要格式不同,我将使用Puttygen.exe程序来生成密钥对。 在Windows上 1. 下载Puttygen.exe程序 2. 运行Puttygen.exe,点击“Generate”,接受默认设置生成RSA公钥对。生成密钥对需要一点时间,在Puttygen程序的空白处随意移动鼠标以加快进度 3. 密钥生成后,将其顶部的文本复制并保存到一个文本文件中(即顶部标志为“Public key for pasting into OpenSSH authorized_keys file:”中的内容)。 4. 点击”Save Private Key“按钮,保存私钥。程序提示时,确认不用PassPhrase保护私钥 在DragonFlyBSD上: 5. 如果你还没有创建相应的用户,使用adduser命令创建一个用户 6. 在DragonFlyBSD上以此用户登录(控制台) 7. 在用户主目录下生成.ssh目录: mkdir .ssh 8. 由于此时DragonFlyBSD不接受SSH登录,需要启动FTPD,从而使用ftp上传公钥文件. 以root用户,运行:/usr/libexec/ftpd…

Read more

DragonFlyBSD 3.0.2上安装PHP5.3

1. 安装PHP模块及其常用的扩展,根据自己的需求进行增减: pkg_radd -v ap22-php53-5.3.9nb1 php53-apc-5.3.9.3.1.9nb1 php53-curl-5.3.9nb1 php53-gd-5.3.9nb2 php53-mysql-5.3.9 php53-mysqli-5.3.9 php53-pdo_mysql-5.3.9 php53-suhosin-5.3.9.0.9.33 php53-xsl-5.3.9nb1 php53-xmlrpc-5.3.9 php53-mbstring-5.3.9 php53-json-5.3.9 php53-zlib-5.3.9 2. 根据软件安装提示,把下面几行添加到/usr/pkg/etc/php.ini中,Dynamic Extensions一节下面: ;;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; extension=zlib.so extension=apc.so extension=iconv.so extension=curl.so extension=gd.so extension=suhosin.so extension=dom.so extension=xsl.so extension=xmlrpc.so extension=pdo.so extension=pdo_mysql.so extension=mysql.so extension=mysqli.so extension=json.so…

Read more

DragonFlyBSD 3.0.2上安装MySQL

MySQL服务器的安装比较简单,摘要如下: 1. pkg_radd mysql-server-5.1.60 2. cp /usr/pkg/share/examples/rc.d/mysqld /etc/rc.d/ 3. 在/etc/rc.conf中添加mysqld_enable=”YES” 4. /etc/rc.d/mysqld start 5. 运行/usr/pkg/bin/mysql_secure_installation,跟据提示设置root账户密码,删除不必要的一些东东 如果你准备安装php,不要安装mysql的5.5版。目前有兼容性问题。

Read more

DragonFlyBSD 3.0.2上安装Apache

上面一篇介绍了一下DragonFlyBSD上的软件管理,今天就来安装Apache。 如果你时间紧迫,先看一下摘要: 1. pkg_radd -v apache-2.2.21nb7 2. cp /usr/pkg/share/examples/rc.d/apache /etc/rc.d/ 3. 添加apache_enable=”YES”到/etc/rc.conf 4. kldload accf_http 5. 在/etc/defaults/loader.conf中,将下面两行中的NO改成YES: accf_data_load=”NO” # Wait for data accept filter accf_http_load=”NO” # Wait for full HTTP request accept filter 6. 根据情况,注释掉httpd.conf中的下面一行: LoadModule unique_id_module lib/httpd/mod_unique_id.so 7. /etc/rc.d/apache…

Read more

初识DragonFlyBSD的软件管理系统

偶然间又看到DragonFlyBSD的消息,一时兴起,想要测试一下这个系统,看一下它的Hammer FS。于是就在虚拟机里安装了DragonFlyBSD3.0.2。 初步印象(和OpenBSD的使用体验相比较): 如果你的英文没有问题的话,按照安装盘的提示一步一步来,安装比较简单。 小于10G的磁盘默认不使用Hammer FS。 安装完成后直接在控制台以root登录,无须密码; 而默认的SSH验证也只接受密钥方式,所以需要创建一个用户,然后创建密钥,设置改用户的密钥验证,然后才能使用ssh远程登录。否则只能在控制台登录。 添加用户的时候发现useradd命令默认没有,需要使用adduser,以互动方式添加。 软件管理: 系统装完后就要安装软件,不然系统也没什么用处。简单说,DragonFlyBSD的软件在管理方式上和其他的BSD也没有太大的区别。 阅读了官方的pkgsrc文档之后,将常见的软件安装,删除及搜索等的方式汇总如下: 1. 准备工作 系统装完后运行如下命令(以root用户): # cd /usr # rm -rf pkgsrc # make pkgsrc-create # make pkgsrc-update 2. 软件搜索: # pkg_search $pkg_name (搜索已经编译好的软件包) 或者 # cd /usr/pkgsrc/ # bmake…

Read more

bzero.c源码注释

bzero函数的作用是向一个字符串写入某个指定字节的空字符’\0’,一般用于把一个字符串置0。类似memset。函数原型为:

DESCRIPTION The bzero() function writes len zero bytes to the string b. If len is zero, bzero() does nothing. 源代码:

只有短短的三行,实现的非常简洁。 bzero的介绍中提到,如果指定的字节数为0,那么bzero什么也不做。对于这个条件的判断隐含中for循环当中:如果length变量为0,则length–返回0(而不是-1),那么循环退出,什么也不做。 读懂这一段代码需要了解: 1. for循环的执行过程 2. –和++操作符以及length–和–length的差别 3. *p++的作用(其中包括*运算符和++运算符的优先级,*p++的返回值,指针的递增运算 对于1,大家可以参看”C programming language (K&R C)”这本书,对于2和3,可以参考“Pointers on C”第六章(如果我没记错的话),讲的很透彻,我就不再这里罗嗦了(讲了可能会越说越乱 :-~)。

Read more

OpenBSD进程的开机启动-续

前面我们谈到如何开机启动系统自带的进程,今天谈一下如何开机启动用户自己安装的守护进程。 对于用户自己安装的守护进程,一般pkg_add命令结束后会给出相应的提示。以mysql服务器来说,它会提示启动脚本已经安装在/etc/rc.d目录下了。对于这样的进程,开机启动的设置也很简单。只需在/etc/rc.conf.local文件下添加一行: pkg_scripts=”mysqld” 如果需要启动多个自己安装的守护进程,一次添加到mysqld前面或后面即可。如: pkg_scripts=”mysqld squid postfix” 如果这多个进程之间有依赖关系,需要注意他们的顺序。开机时,系统按照他们出现的顺序依次启动(从前往后),关机时按照相反的顺序(从后往前)一次关闭。因此需要先启动(同时后关闭)的就要放在前面,否则就放在后面。

Read more

OpenBSD进程的开机启动

OpenBSD上守护进程的开机启动由/etc/rc.conf.local来控制。需要程序随机器启动,需要相应编辑此文件。 OpenBSD上的守护进程一般分为系统自带以及用户安装两种。系统自带进程,如ftpd, relayd,named等;用户安装的守护进程则是用户自己通过pkg_add安装的程序所带的守护进程。 今天我们先谈一下如何开机启动系统自带的进程。以named为例。 对于这一类的进程,/etc/rc.conf文件下一般会有相应的变量来控制它是否随机器启动而运行。对于named来说: $ grep named /etc/rc.conf named_flags=NO # for normal use: “” named默认是不会随机器启动的。同时这个文件也给出提示,如果你想要启动它,把这一行改成: named_flags=”” 即可。 但是我们不应该直接改动/etc/rc.conf文件,虽然直接改也能生效。推荐的方法是编辑/etc/rc.conf.local文件,把这一行放入其中,也能起到同样的效果。这样做的好处是,升级系统的时候,你的配置不会被覆盖掉(/etc/rc.conf会在升级时被覆盖)。 如果你不想重启系统,可以看一下/etc/rc.d目录下是否有启动脚本。对于named来说,我们可以直接运行: /etc/rc.d/named start 以后我们再谈如何启动用户自己安装的守护进程。

Read more

如何断开无效的用户登录会话

昨天发现OpenBSD系统上有一个登录的会话,已经空闲了9天。想必是哪天在手机上测试SSH端口转发后造成的。 #w 6:07PM up 12 days, 21:42, 2 users, load averages: 0.24, 0.14, 0.09 USER TTY FROM LOGIN@ IDLE WHAT acheng p0 180.116.63.38 6:00PM 0 w acheng p4 114.227.123.110 27Jul12 9days – 该如何把它解决掉呢?查了一下,ttyp4上已经没有什么进程了,想用kill也没机会了。 #ps -t p4 PID TT STAT TIME…

Read more
Sidebar