分类: BSD
2007-11-21 16:00:39
Q:如何关闭文本控制台的哔哔声
A:可以直接在命令行输入以下命令:
# wsconsctl keyboard.bell.pitch=0
# wsconsctl keyboard.bell.volume=0
数字0表示音量,你可以设置为某一个整数,以调整音量大小。
你可以将这两条命令写在 /etc/rc.local 里,让它们在系统启动之后就执行,也可以放在 /etc/wsconsctl.conf 中。
# ---- File: /etc/rc.local ----
# Append these two lines:
/sbin/wsconsctl keyboard.bell.pitch=0
/sbin/wsconsctl keyboard.bell.volume=0
# ---- File: /etc/wsconsctl.conf ----
# Append these lines:
keyboard.bell.pitch=0
keyboard.bell.volume=0
Q:使用80x50的终端模式(50行,每行80个字符)
A:可以把这几行加在/etc/rc.local中,也可以以root身份(或者sudo)在命令行运行以下三行命令:
# wsfontload -h 8 -e ibm /usr/share/misc/pcvtfonts/vt220l.808
# wsconscfg -dF 5
# wsconscfg -t 80x50 5
其中wsconscfg -dF 5是指第六个终端(ttyC5,也就是按Ctrl+Alt+F6),而第一个终端是ttyC0(如果把5改成0,是不会生效的,会显示一个“Device busy”的信息)如果在当前的ttyCn上运行以下命令,并且把"5"改成了"n-1“,则当前终端会失去响应.
Q:快速删除系统里的packages
A:# pkg_delete -q /var/db/pkg/*
Q:挂载USB盘
A:# mkdir /mnt/usb
# mount_msdos /dev/sd0i /mnt/usb
Q:静态路由
A:方法是加到/etc/rc.local里面。
route add -net 204.12.16.0 -netmask 255.255.255.0 172.20.8.252
这是把204.12.16.0/24的网段都路由到172.20.8.252上面。
Q:锁住终端
A:# lock -np
-n 永不超时
-p 使用系统密码作为开启终端的密匙
Q:屏蔽登陆时的系统信息
A:# >; /etc/motd
# vi /etc/rc
===================== rc ====================
注释掉下面的内容:
# patch /etc/motd
#if [ ! -f /etc/motd ]; then
# install -c -o root -g wheel -m 664 /dev/null /etc/motd
#fi
#T=`mktemp /tmp/_motd.XXXXXXXXXX`
#if [ $? -eq 0 ]; then
# sysctl -n kern.version | sed 1q >; $T
# echo "" >;>; $T
# sed '1,/^$/d' < /etc/motd >;>; $T
# cmp -s $T /etc/motd || cp $T /etc/motd
# rm -f $T
#fi
===================== rc ====================
Q:防止cracker利用rootkit工具通过后门进入系统
A:对/bin,/sbin进行安全保护:
# chflags schg /bin/*
# chflags schg /sbin/*
/bin/ls -lo /bin
看看文件是不是已经是schg了,想要去掉的话还必须进入单用户模式chflags noschg /bin/*可以把file flag去掉
Q:禁止一般用户查看系统日志
A:# chmod g-w,o-r /var/log/*
Q:简化mount光驱、软驱操作
A:# mkdir /mnt/cdrom
# mkdir /mnt/floppy
# vi /etc/fstab
/dev/cd0a /mnt/cdrom cd9660 ro,nodev,nosuid,noauto 0 0
/dev/fd0a /mnt/floppy msdos rw,nodev,nosuid,noauto 0 0
这样就可以直接mount /mnt/cdrom; mount /mnt/floppy了
Q:如何跳过OpenBSD启动时在boot等待的5秒钟
A:系统在启动的时候(使用boot(8)),boot(8)会搜索/etc/boot.conf文件,如果找到了,就执行记录在文件里的命令。
可以在/etc/boot.conf中使用一些命令。最简单的就是一个'boot'单词。系统启动时,默认会在出现提示符的时候停5秒的时间,如果在/etc/boot.conf中加了一个'boot'命令,系统在启动到提示符处时,会马上执行这个指令,于是就不需要等待5秒的时间了。
注:记录在该文件中的指令,对pxeboot程序也同样有效。所以,如果该系统同时用做PXE网络启动安装的服务器,要注意这里记录的命令是否会对PXE网络启动安装造成影响。
Q:建议cp命令使用-R参数
A:虽然cp命令也支持-r参数,但是并不推荐使用该参数。因为它无法正确复制一些特殊文件,比如“符号链接文件(symbolic links)”或者“输入输出(FIFOs)”推荐使用-R参数。[#man cp]
Q:OpenBSD能装fcitx输入法吗?
A: # vi fcitx/src/main.c & fcitx-3.1.1/src/main.c
< #ifdef CODESET
< #define CODESET 14
< #endif
< bIsUtf8 = (strstr (setlocale (LC_CTYPE, NULL), "utf8") != NULL);
> bIsUtf8 = (strcmp (nl_langinfo (CODESET), "UTF-8") == 0);
只要做一下简单的修改,fcitx就可以编译成功了。
同时还需要重现编译一下OpenBSD的locale,到/usr/src/share/locale/ctype/ 修改一下Makefile将
LOCALES += zh_CN.eucCN
LOCALESRC_zh_CN.eucCN = zh_CN.eucCN
前面的#去掉,到/usr/src/share/locale/ 执行make;make install
设置/root/.cshrc加入
setenv LC_CTYPE zh_CN.eucCN
setenv LC_ALL zh_CN.eucCN
setenv LANG zh_CN.eucCN
setenv XMODIFIERS "@im=fcitx"
修改/root/.xinitrc加入
exec fcitx &
注销帐号重新登陆就可以输入中文了
Q:OpenBSD能装scim输入法吗?
A:#tar zxvf scim-1.4.2.tar.gz
#cd scim-1.4.2
#cd src
#vi scim_utility.cpp
< #define CODESET 14
#./configure
# make install
#scim -f socket -d
SCIM has been successfully launched.
Q:OpenBSD自动登陆系统启动X-windows
A:自己个人使用的电脑每次都要登陆后才进X, 现在简单写一下就可以自动开机进入x-windows系统了!
修改/etc/rc文件, 在文件的最后exit 0 前加入一行:
exec /bin/csh
然后修改根目录下的 /.cshrc 在最后加入
startx
另外再把你的/root 目录下的.xinitrc文件copy到 根目录 /下就行了!
Q:用tar实现分卷压缩
A:分开:
# tar czvf - dir | split -d -b 18m
合并:
# cat x* > dir.tgz
Q:可以象freebsd的"portupgrade -rRf"那样升级ports吗?
A:可以"make update FORCE_UPDATE=yes"
Q:限制SSH验证重试次数:
A: # vi /etc/ssh/sshd_config
MaxAuthTries 6
Q:可以把系统的核心的运行层次设置为最安全的层次:
OpenBSD comes with 4 different SecureLevel,which are -1,0,1,2.Default securelevel is 1 ,-1 is being the least secure; 2 is the most secure.
You can change this value in /etc/rc.securelevel and reboot to activate new securelevel,if u don't want reboot u can try
A: # sysctl -w kern.securelevel=2
# kern.securelevel: 1 -> 2
note**:Securelevel may not be lowered while the system is running, it can only be raised.
Q:禁用由inetd启动的程序:
A: # vi /etc/sysctl.conf
inetd=NO
Q:如何禁止一般用户查看系统日志:
A: # chmod g-w,o-r /var/log/*
Q:如何解决sudo不成功
A:sudo不能root时要编辑 /etc/group 文件
#vi /etc/group
wheel:*:0:root,xxx,xxx,xxx,...
在wheel:*:0:root后加逗号和用户名即可。
sudo后有没权限执行的命令,这时要修改 /etc/sudoers 文件
# visudo 找到 root ALL=(ALL) ALL
root ALL=(ALL) ALL (下一行新建)
xxxx ALL=(ALL) ALL (xxxx 是新用户)
这样这个用户就会有root的所有权限。
Q:如果忘记ROOT的密码
A: boot> boot –s
boot> fsck -p / && mount -uw /
boot> fsck -p /usr && mount /usr
boot> passwd root
Q:网关配制
A:直接将IP写入/etc/mygate
Q:机器名
A:直接写入/etc/myname
Q:网卡配制
A:直接将参数写入/etc/hostname.ifname
比如,网卡名为fxp0则将配制内容:inet 192.168.0.1写入/etc/hostname.fxp0
Q:关闭sendmail
A:将/etc/rc.conf中的sendmail_flags="xxxx"改为sendmail_falgs=NO
关闭rc.conf中的其它服务方法类似。
Q:重新设置时区:
A: # cd /etc
# ln -s /usr/share/timezone/US/Eastern localtim
Q:如何在OpenBSD下一块网卡绑定多个IP地址
A:编辑/etc/hostname.dc0 (注意,不同的网卡是不同的名称,我这边是dc0)
#cat /etc/hostname.dc0
inet 192.168.0.2 255.255.255.0 media 100baseTX
inet alias 192.168.0.3 255.255.255.255
inet alias 192.168.0.4 255.255.255.255
现在你知道如何做了吗?
或者通过ifconfig来进行
ifconfig dc0 inet alias 192.168.0.3 netmask 255.255.255.255
Q:查看IP地址的情况!
A: $ ifconfig -A
dc0: flags=8863
media: Ethernet manual
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
inet 192.168.0.3 netmask 0xffffffff broadcast 192.168.0.3
这个地方一定要使用参数-A
你可以man ifconfig可以看到
If -A is used, it causes full interface alias information for each inter-
face to be displayed.
这个参数是用来显示全部接口的alias信息的!
Q:如何使你的OpenBSD支持tab键补齐!
A: 到ftp://ftp.openbsd.org/下载一个tcsh-6.12.00-static的package
然后使用pkg_add tcsh-6.12.00-static.tgz
修改/etc/shells
加入
/usr/local/bin/tcsh
执行命令vipw或者chsh修改root的shell为/usr/local/bin/tcsh
注销,重新登陆,你就可以发现你现在的shell可以使用tab键补齐了!
补充:你同样可以使用bash,设置方法同上!
Q:完全关闭sendmail不仅需要
A: 将/etc/rc.conf中的sendmail_flags="xxxx"改为sendmail_falgs=NO
由于系统定时任务还会启动它,所以还需作如下修改
修改/etc/daily
找到下面代码
sh /etc/security 2>&1 > $OUT
if [ -s $OUT ]; then
mail -s "$host daily insecurity output" root < $OUT
fi
修改如下
sh /etc/security 2>&1 > $OUT.TMP
if [ -s $OUT.TMP ]; then
echo "$host daily insecurity output" > $OUT
cat $OUT.TMP >> $OUT
rm $OUT.TMP
/usr/libexec/mail.local root > $OUT
fi
修改crontab
#crontab –u root –e
将
30 1 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | mail - s "`/bin/hostname` daily output" root
30 3 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out | mail -s "`/bin/hostname` weekly output" root
30 5 1 * * /bin/sh /etc/monthly 2>&1 | tee /var/log/monthly.out | mail -s "`/bin/hostname` monthly output" root
修改为
30 1 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | /usr/libexec/mail.local root
30 3 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out | /usr/libexec/mail.local root
30 5 1 * * /bin/sh /etc/monthly 2>&1 | tee /var/log/monthly.out | /usr/libexec/mail.local root
并注释掉启动Sendmail行
#*/30 * * * * /usr/sbin/sendmail –L sm-msp-queue –Ac -q
Q:如何让OpenBSD同步网络时间
A: 使用命令:
rdate -n time.cn99.com
-n Use SNTP (RFC 1361) instead of the RFC 868 time protocol.
By default, rdate uses the RFC 868 TCP protocol
而在FreeBSD则是用ntpdate来进行时间的同步!
Q:在OpenBSD下通过ftp这个命令来代替fetch的用法!
A: 命令的使用格式如下!
ftp -m -V
这个命令从linuxforum.net的服务器上取得apache_1.3.29.tar.gz这个文件!
如果是从ftp服务器上取得文件,参数相同!
命令参数解释:
-m Causes ftp to always display the progress meter in cases where it
would not do so by default.
-V Disable verbose mode, overriding the default of enabled when in-
put is from a terminal.
Q:如何让OpenBSD关闭并自动关闭电源
A:shutdown -ph now
Q:如何在OpenBSD下面mount .iso文件
A: # mkdir /mnt/iso
# vnconfig cd0 /home/iso/OpenBSD_3_6.iso
# mount -t cd9660 /dev/cd0c /mnt/iso
或者:
# mount_cd9660 /dev/cd0c /mnt/iso
# cd /mnt/iso
Q:如何在OpenBSD下面快速安装package
A: 前提: 网络环境,可以连接到Internet,或者你内部有OpenBSD的package的mirror也可以!
设置:
在/root/.cshrc中加入
setenv PKG_PATH ftp://OpenBSD:OpenBSD@ftp.cnfug.org/OpenBSD/snapshots/packages/`machine -a`/
上面是我自己使用的设置,你可以根据具体的环境,具体的服务器进行设置。
注销重新登陆使setenv生效,或输入# source .cshrc
从3.9开始pkg_add这个命令真的有了很大的改进,添加了上面的设置后,你只要 # pkg_add tcsh 即可安装tcsh这个软件 她会自动搜索服务器安装最新版。
Q:无安装光盘快速重新安装OpenBSD系统!
A:启动的时候使用boot /bsd.rd
然后安装选择本地硬盘或者通过ftp或者http或者nfs来进行安装,非常方便快捷!
希望FreeBSD也可以做到这样!
Q:如何启动服务
A: 添加到/etc/rc.local
参数和变量仍然在rc.conf中声明
例如
# vi /etc/rc.conf 增加
mysqld=YES
# vi /etc/rc.local 增加
if [ X"${mysqld}" == X"YES" -a -x /usr/local/bin/mysqld_safe ]; then
echo Starting mysqld
/usr/local/bin/mysqld_safe &
fi
这样系统启动到rc.local流程的时候,就可以判断出是否运行这个服务,如果你不想用rc.local,可以自己定义一个rc.service
# vi /etc/rc 增加
[ -f /etc/rc.service] && . /etc/rc.service
rc.service就是标准的shell程序了.
Q:使用 fdisk 添加新分区
You have a disk 20GB, and installed openBSD only 1GB then other disk space is unusable now. Let use it
A:#disklabel -E wd0
>p m
# size offset fstype [fsize bsize cpg]
a: 1000.1M 0.0M 4.2BSD 2048 16384 328 # (Cyl. 0*- 2031)
b: 500.1M 1000.1M swap # (Cyl. 2032 - 3047)
c: 19092.9M 0.0M unused 0 0 # (Cyl. 0 - 38791)
> a
partition: [d]
offset: [3072384]
size: [36029826]
FS type: [4.2BSD]
>w
>q
#mkdir /working
and
#mount_ufs /dev/wd0s /working
reboot and use your new partition.
*wd0 is my first ide disk
Q: 多网卡时标记网卡用途的小方法
In OpenBSD you can add description your interface to specify which interface do what?
For example, My firewall has 4 interface and i want to know what's fxp1 interface function?
A:i can add description to interface with ifconfig.
#ifconfig fxp1 description WEB_DMZ
to clear the description use
#ifconfig fxp1 -description