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:可以把系统的核心的运行层次设置为最安全的层次: A: # sysctl -w kern.securelevel=2
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 文件
root ALL=(ALL) ALL (下一行新建)
xxxx ALL=(ALL) ALL
这样这个用户就会有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:网关配置
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中的其它服务方法类似。
完全关闭sendmail不仅需要将/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:重新设置时区
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:到下载一个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:如何让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 svnd0 /home/iso/OpenBSD_3_6.iso
# mount -t cd9660 /dev/svnd0c /mnt/iso
或者:
# mount_cd9660 /dev/svnd0c /mnt/iso
# cd /mnt/iso
Q:如何在OpenBSD下面快速安装package
A:前提:
网络环境,可以连接到Internet,或者你内部有OpenBSD的package的mirror也可以!
设置:
在/root/.cshrc中加入
setenv SITE
上面上我自己使用的设置,你可以根据具体的环境,具体的服务器进行设置。
注销重新登陆使setenv生效。
查找你需要的package
grep packagename /root/mbox
安装package:
pkg_add $SITE/packagename
我的一个例子
OpenBSD[/root]-root->grep cvsup-16.1g mbox
cvsplot-1.6.5.tgz cvsup-16.1g-no_x11.tgz
cvsup-16.1g.tgz cvsupd-16.1g-no_x11.tgz
OpenBSD[/root]-root->pkg_add $SITE/cvsup-16.1g-no_x11.tgz
cvsup-16.1g-no_x11: complete
Q:无安装光盘快速重新安装OpenBSD系统!
A:启动的时候使用boot /bsd.rd
然后安装选择本地硬盘或者通过ftp或者http或者nfs来进行安装,非常方便快捷!
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:禁止一般用户查看系统日志
A:# chmod g-w,o-r /var/log/*
Q:防止cracker利用rootkit工具通过后门进入系统
对/bin,/sbin进行安全保护:
# chflags schg /bin/*
# chflags schg /sbin/*
/bin/ls -lo /bin
看看文件是不是已经是schg了,想要去掉的话还必须进入单用户模式
chflags noschg /bin/*可以把file flag去掉
Q:使用BASH作ROOT的SHELL,所有系统用户的shell均改为bash
# pkg_add libiconv-1.9.1.tgz
# pkg_add gettext-0.10.40p1.tgz
# pkg_add bash-3.0.tgz
cp /usr/local/bin/bash /bin/
#########################
建议把它从 /usr/local/bin/bash 拷贝到 /bin/bash 下,这样才能一旦不幸机器重启,要进行文件系统检查(或类似情形)时它也能用,因为这种情况下,只有根分区是挂接的,而 /usr/local/bin/bash 就不能用了。
#######################
# echo "/bin/bash" >;>; /etc/shells
# chsh -s /bin/bash
# vi /root/.profile
## 增加下面的部分
PS1='[\u@\H \W]\$'
export PS1
TMOUT=1800
修改/etc/skel/.profile,增加PS1环境变量
PS1='[\u@\h:\w]\$ '
export PS1
修改adduser的配置文件,这样以后增加的用户全都是以bash作为默认shell
#adduser -config_create
Use option ``-silent'' if you don't want to see all warnings and questions.
Reading /etc/shells
Enter your default shell: bash csh ksh nologin sh [sh]: bash
Your default shell is: bash ->; /bin/bash
Reading /etc/login.conf
Default login class: auth-defaults auth-ftp-defaults daemon default staff
[default]:
Enter your default HOME partition: [/home]:
Copy dotfiles from: /etc/skel no [/etc/skel]:
Send message from file: /etc/adduser.message no [no]:
Do not send message
Prompt for passwords by default (y/n) [y]:
Default encryption method for passwords: auto blowfish des md5 old
[auto]:
Q:屏蔽登陆时的系统信息
# >; /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:锁住终端
# lock -np
-n 永不超时
-p 使用系统密码作为开启终端的密匙
Q:静态路由
我实验的方法是加到/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:快速删除系统上所有的软件包
# pkg_delete -q /var/db/pkg/*
Q:OpenBSD自动登陆系统启动X-windows
A:自己个人使用的电脑每次都要登陆后才进X, 现在简单写一下就可以自动开机进入x-windows系统了!
修改/etc/rc文件, 在文件的最后exit 0 前加入一行:
exec /bin/csh
然后修改根目录下的 /.cshrc 在最后加入
startx
另外再把你的/root 目录下的.xinitrc文件copy到 根目录 /下就行了!
Q:限制SSH验证重试次数
A:# vi /etc/ssh/sshd_config
MaxAuthTries 6
Q:不更改系统默认shell的情况下方便地使用bash(可以改成任何自己顺手的shell)
如果你用的系统默认shell为csh,而你可能用惯了bash,所以csh不是非常顺手,这段shell代码可以解决你的问题:
登录之后,你的shell(这里是csh)马上就会执行'exec $BASH'(如果bash安装了的话。当然你也可以改成ksh之类自己用着顺手的shell),所以在你看来,系统默认shell就是bash了。
这种方法在你打开xterm或者konsole之类的模拟终端时,也会生效。方便吧?
把这几行添加在'~/.cshrc'中就OK了:
# ------- bash -------
set BASH = '/usr/local/bin/bash'
if (-x $BASH) then
set PS1 = '[u@ w] $ '
exec $BASH
else
:
endif
可能有些系统需要加在'~/.profile'里,大家自己留意一下
Q:在终端使用鼠标(就象Linux下的gpm)
edit /etc/rc.conf :
wsmoused_flags=""
Q:使用80x50的终端模式(50行,每行80个字符)
可以把这几行加在/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“,则当前终端会失去响应(在俺的机子上,根本没法切换Ctrl+Alt+Fn了)
更多的信息,请看OB的FAQ和man文档
Q:使用'passwd'修改密码时,无法使用小于六位数的密码
这个问题嘛,要坚持,它提示说不允许,你偏要输入小于六位数的,嘿嘿,三到四次之后,它就提示你:
RETYPE YOUR PASSWORD