Chinaunix首页 | 论坛 | 博客
  • 博客访问: 516631
  • 博文数量: 62
  • 博客积分: 2566
  • 博客等级: 少校
  • 技术积分: 520
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-10 12:52
文章分类

全部博文(62)

文章存档

2008年(2)

2007年(22)

2006年(38)

我的朋友

分类: BSD

2006-05-05 12:17:37

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

 

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