FreeBSD 8.0下安装QQ for Linux

国人的电脑上估计都离不开QQ这东东了,虽说这东东比较霸道,但我们还是在用它。以前非Windows用户是无法直接使用QQ的,现在QQ官方提供了Linux系统支持,但在FreeBSD系统上使用还是比较麻烦的。本文主要介绍FreeBSD 8.0下是如何安装QQ的。

一、开启 Linux 二进制兼容支持

# kldload linux

开机自动开启linux二进制兼容支持

vi /etc/rc.conf

linux_enable="YES"

二、安装Linux运行时库

# cd /usr/ports/emulators/linux_base-f10
# make install distclean

三、安装QQ for Linux

#cd /usr/ports/net-im/qq/ && make install clean

四、配置支持中文输入法(仅测试过FCITX)

#/compat/linux/usr/bin/localedef -i zh_CN -f UTF-8 zh_CN

 

参考资料:http://wiki.freebsdchina.org/software/q/qqforlinux

FreeBSD下安装lighttpd支持php

FreeBSD下安装lighttpd支持php

有不恰当的地方欢迎指正By:ghw(gehaowu@gmail.com)

安装lighttpd

记得在SPAWNFCGI前打勾

[X] SPAWNFCGI  Depend on spawn-fcgi utility
#cd /usr/ports/www/lighttpd
#make config
#make install clean

安装php

模块自己看自己需要

#cd /usr/ports/lang/php5/ && make install clean
#cd /usr/ports/lang/php5-extensions/ && make install clean

配置lighttpd

编辑/usr/local/etc/lighttpd/lighttpd.conf,添加以下内容:

server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
  (( "socket" => "/tmp/php-fastcgi.socket",
    "bin-path" => "/usr/local/bin/php-cgi",
     "min-procs" => 1,
     "max-procs" => 1,
     "max-load-per-proc" => 4,
     "bin-environment" => (
     "PHP_FCGI_CHILDREN" => "2",
    #"PHP_FCGI_CHILDREN" => "64",//这里进程数自己看着办
        "PHP_FCGI_MAX_REQUESTS" => "10000" ),
      "bin-copy-environment" => (
        "PATH", "SHELL", "USER" ),
      "broken-scriptfilename" => "enable",
     "idle-timeout" => 20
  ))
)

设置服务

启动lighttpd

#echo ‘lighttpd_enable="YES"’ >> /etc/rc.conf
#/usr/local/etc/rc.d/lighttpd start

网站跟目录是修改这行

server.document-root = "/usr/local/www/data/"

原文链接:http://wiki.freebsdchina.org/howto/n/php_fastcgi_lighttpd

在FreeBSD上运行PostgreSQL数据库

在 FreeBSD 上运行PostgreSQL数据库

概要

* PostgreSQL是自由的对象-关系数据库服务器(数据库管理系统),在灵活的BSD-风格许可证下发行。它在其他开放源代码数据库系统(比如MySQL和Firebird),和专有系统比如Oracle、Sybase、IBM的DB2和Microsoft SQL Server之外,为用户又提供了一种选择。本文主要整理了在 FreeBSD 上运行PostgreSQL数据库的详细安装过程。

配置FreeBSD内核

  options         SYSVSHM
  options         SYSVSEM
  options         SYSVMSG
  options         SHMMAXPGS=65536
  options         SEMMNI=40
  options         SEMMNS=240
  options         SEMUME=40
  options         SEMMNU=120

从Posts安装PostgreSQL

#cd /usr/ports/databases/postgresql90-server/ && make install

配置PostgreSQL

往rc.conf里增加启动项

postgresql_enable="YES"

初始化数据库

# /usr/local/etc/rc.d/postgresql initdb

终端回显

tomato# /usr/local/etc/rc.d/postgresql initdb
属于此数据库系统的文件宿主为用户 "pgsql".
此用户也必须为服务器进程的宿主.
数据库簇将带有一下 locales 初始化
  COLLATE:  C
  CTYPE:    zh_CN.UTF-8
  MESSAGES: zh_CN.UTF-8
  MONETARY: zh_CN.UTF-8
  NUMERIC:  zh_CN.UTF-8
  TIME:     zh_CN.UTF-8
initdb: 无法为语言环境"zh_CN.UTF-8" 找到合适的编码配置
缺省的文本搜索配置将会被设置到"simple"

创建目录 /usr/local/pgsql/data … 成功
正在创建子目录 … 成功
选择默认最大联接数 (max_connections) … 100
选择默认共享缓冲区大小 (shared_buffers) … 32MB
创建配置文件 … 成功
在 /usr/local/pgsql/data/base/1 中创建 template1 数据库 … 成功
初始化 pg_authid …  成功
初始化dependencies … 成功
创建系统视图 … 成功
正在加载系统对象描述 … 成功
创建字符集转换 … 成功
正在创建字典 … 成功
对内建对象设置权限 … 成功
创建信息模式 … 成功
loading PL/pgSQL server-side language … 成功
清理数据库 template1 … 成功
拷贝 template1 到 template0 … 成功
拷贝 template1 到 template0 … 成功

警告: 为本地连接启动了 "trust" 认证.
你可以通过编辑 pg_hba.conf 更改或你下
次运行 initdb 时使用 -A 选项.

成功. 您现在可以用下面的命令运行数据库服务器:

    /usr/local/bin/postmaster -D /usr/local/pgsql/data
或者
    /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

tomato#

运行PostgreSQL服务

# /usr/local/etc/rc.d/postgresql start

允许其他非本地IP链接

vi /usr/local/pgsql/data/postgresql.conf
   listen_addresses = ‘*’

修改用户密码加密方式

vi /usr/local/pgsql/data/pg_hba.conf
    host  all  all  10.0.1.0/24  md5

增加数据库用户

    #su pgsql
    $ createuser -sdrP pgsqldb

安装phpPgAdmin,网页版PGSQL管理工具

    #cd /usr/ports/databases/phppgadmin
    #make install clean
    #ln -s /usr/local/www/phpPgAdmin /usr/local/www/data/

通过http://localhost/phppgadmin访问

原文链接:http://wiki.freebsdchina.org/doc/d/pgsql_running

FreeBSD 7.3下Nginx+PHP(php-fpm)配置笔记

FreeBSD 7.3下Nginx+PHP(php-fpm)配置笔记

都说Nginx的性能比Apache NB,找了很多相关的安装资料,终于实现完成了FreeBSD+Nginx+PHP的配置。网上多数Nginx+PHP的配置都是使用的spawn-fcgi,需要额外安装lighttpd或者单独安装spawn-fcgi,其实PHP自带的php-fpm也挺好用的。

一、安装Nginx

# cd /usr/ports/www/nginx
# make install clean

选上自己需要的模块

FreeBSD Nginx安装

二、安装PHP

# cd /usr/ports/lang/php52
# make install clean

记得选择FASTCGI和FPM模块

FreeBSD PHP5安装

然后安装php52-extensions

# cd /usr/ports/lang/php52-extensions
# make install clean

根据需要选择相关的模块

三、配置php-fpm

# vi /usr/local/etc/php-fpm.conf
根据实际环境修改如下参数:

<value name=”listen_address”>127.0.0.1:9000</value>
<value name=”owner”>www</value>
<value name=”group”>www</value>
<value name=”mode”>0666</value>
<value name=”max_children”>5</value>
<value name=”request_slowlog_timeout”>0s</value>
<value name=”max_requests”>500</value>

四、启动php-fpm

# vi /etc/rc.conf

php_fpm_enable=”YES”

# /usr/local/etc/rc.d/php_fpm start

五、配置Nginx

user  www www;
worker_processes  8;

events {
use kqueue;
worker_connections  51200;
}

http {
include       mime.types;
default_type  application/octet-stream;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile        on;
tcp_nopush     on;
keepalive_timeout  65;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

gzip  on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;

tcp_nodelay on;

server {
listen      80;
server_name  www.bsdart.org;
root  /data/web/htdocs;
index index.htm index.html index.php;

location ~ .*\.(php|php5)?$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
include        fastcgi.conf;
}

error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}
}

五、启动Nginx

# vi /etc/rc.conf

nginx_enable=”YES”

# /usr/local/etc/rc.d/nginx start

在FreeBSD上运行MySQL数据库

在 FreeBSD 上运行MySQL数据库

概要

FreeBSD 7.0包含了大量针对多处理器系统的可伸缩性改进。本文的目的在于整理一系列适用于 FreeBSD 7.0 的运行 MySQL的技巧。

硬件准备

一般而言,增加可用的 CPU 数量,会显著地改善数据库的查询性能。除此之外,在规划硬件配置时,还应考虑一些其他问题:

    将不同性质的读写操作分散到不同的物理磁盘上

成本方面的考虑,通常说来,对于顺序读写操作,使用ATA/SATA硬盘完全能够胜任。这包括服务器日志、数据库事务日志等等。而对于随机读写操作,如数据库数据文件,则推荐使用SCSI或SAS硬盘。此外,将不同性质的读写操作分散到不同的物理盘上,有助于降低发生故障时将数据完全丢失的风险,并可以有效地避免将单块磁盘的I/O性能耗竭,而导致系统响应时间变差。

    使用合适的数据块尺寸来初始化文件系统

在初始化文件系统时,数据块尺寸会决定文件系统一次性向磁盘发出读写请求时的数据量。请参考你的数据库的用户手册来了解合适的尺寸大小。对于 UFS 而言,较大的数据块还可以带来的一个“副作用”是,由于大数据块会使文件系统中的重要数据单元——柱面组的数量下降,对性能会有一定改善,并且会显著减少fsck所需的时间。

    使用更多的内存

编译系统

默认配置的 FreeBSD 7.0 采用传统的 4BSD 调度器,因此需要将其替换为 ULE 调度器:

cd /usr/src/sys/`uname -p`/conf
sed -e s,4BSD,ULE,g GENERIC > DB-GENERIC
cd /usr/src
echo KERNCONF=DB-GENERIC >> /etc/make.conf
make buildworld buildkernel && sudo make installkernel installworld

MySQL 的编译

我们推荐使用的 MySQL 版本是 5.0。推荐的 ports.conf 项目为:

databases/mysql*-server: BUILD_OPTIMIZED=yes|WITH_XCHARSET=yes

安装方法:

portinstall databases/mysql50-server

ports安装具体方法:

#cd /usr/ports/databases/mysql51-server     #这里以安装mysql5.1为例
#make install clean
#rehash
#cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf            #服务器内存1G,但是与apache在一起

/usr/local/share/mysql下面有5个my-xxxx.cnf文件

my-small.cnf 最小配置安装,内存?64M,数据数量最少

my-large.cnf 内存=512M

my-medium.cnf 32M<内存<64M,或者内存有128M,但是数据库与web服务器公用内存

my-huge.cnf 1G<内存<2G,服务器主要运行mysql

my-innodb-heavy-4G.cnf 最大配置安装,内存至少4G

在 rc.conf.local 里面做如下设置

mysql_dbdir="/path/to/MySQL_data"
mysql_enable="YES"

其中 /path/to/mysql_data 是 MySQL 数据库所在的位置。在第一次通过 MySQL 的 rc 脚本启动 MySQL 的时候,rc 脚本会负责正确的初始化 MySQL 的数据库。

原文链接:http://wiki.freebsdchina.org/doc/d/database_running

FreeBSD 8.0通过VirtualBox 3.1.2安装Windows XP虚拟机

FreeBSD 8.0通过VirtualBox 3.1.2安装Windows XP虚拟机

一直以来,在FreeBSD里都想虚拟一个Windows XP让儿子可以玩LEGO的设计,但总是有各种各样的问题。今天,发现VirtualBox到3.1.2了,想试试如何,首先安装VirtualBox。

1, 安装VirtualBox

$cd /usr/ports/emulators/virtualbox-ose
$sudo make install clean

2, 然后安装VirtualBox的内核模块,这个过程会在/boot/modules/下产生vboxdrv.ko,vboxnetadp.ko,vboxnetflt.ko几个内核模块

$cd /usr/ports/emulators/virtualbox-ose-kmod
$sudo make install clean

3, 在/boot/loader.conf里添加

vboxdrv_load="YES"

4, 在/etc/rc.conf里添加

vboxnet_enable="YES" #这会产生一个虚拟网卡vboxnet0,用ifconfig可以看到。

5, 重启系统 (有可能FreeBSD内核需要升级,如果vboxdrv加载失败)

$sudo shutdown -r now

6, 启动VirtualBox, 创建Windows XP的虚拟机

$VirtualBox

7, 为虚拟机使用Bridge Adapter网络模式,网卡为系统当前帮定IP的网卡。

8, 为虚拟机创建共享盘,指向当前用户目录的某个目录,比如 /home/hoo/share

9, 安装Windows XP (啊,非常快,好像比物理机还快)

10, 虚拟机启动后,安装Guest Additions,这一步可以通过网络下载VBoxGuestAdditions_3.1.2.iso(click虚拟机的菜单Devices–>Install Guest Additions..,然后按提示做),挂载这个文件到虚拟机光驱,Windows XP启动后,就会自动安装了。

11, 安装VBoxGuestAdditions后,虚拟机可以全屏方式工作,和FreeBSD的桌面分辨率一样(我以前一直都是只能工作在1024×768或800×600,现在是1280×800,而不用考虑Windows XP的分辨率)

12, 配置Windows XP网络及防火墙,可以和FreeBSD互相ping通。

13, 安装VBoxGuestAdditions后,在虚拟机里可以映射FreeBSD的共享盘,比如 Z:盘 映射到 \\vboxsvr\share (vboxsvr是virtualbox固定的名字,share是你在创建共享目录时取的共享名)

14, 在自己bin目录下,比如我的 \home\hoo\bin,建立一个shell程序,可以直接启动windows XP

$vi bin\vwin

#!\bin\sh
VBoxManage startvm winxp –type gui &

$chmod +x bin\vwin
$rehash

$vwin

到此,虚拟的Windows XP已经完全可以正常工作了,全屏方式下,几乎感觉不到是虚拟机,包括速度。而且,虚拟的Windows XP和宿主FreeBSD里可以通过网络及共享盘进行方便的交互。以前,用NAT网络模式时是不可能的。 VirtualBox运行界面

VirtualBox全屏效果

VirtualBox系统开销

VirtualBox运行LEGO Designer时的开销

原文链接:http://blog.chinaunix.net/u/29188/showart_2158762.html

详解FreeBSD 8下部署Apache+MySQL+PHP 5

众所周知,在生产环境下配置Apache+PHP 5环境或Nginx+PHP 5环境还是很复杂的,即大家熟悉的LAMP或NAMP架构,就算按照详细的部署文档来安装的话也是一个较长和麻烦的过程;但这一切在FreeBSD下用ports就简化了,本人感觉特别适应于开发环境,特将FreeBSD 8下的部署过程记录如下,方便与大家交流共享。

一、安装Apache2.2

cd /usr/ports/www/apache22
make install clean

去掉IPV6
添加MySQL

安装完成后,需要编辑/etc/rc.conf文件,添加下面内容到/etc/rc.conf:

apache22_enable="YES"

配置Apache 2.2

安装完成后,备份/usr/local/etc/apache22/httpd.conf文件:

cp /usr/local/etc/apache22/httpd.conf /usr/local/etc/apache22/httpd.conf.bak

编辑/usr/local/etc/apache22/httpd.conf文件,以使Apache22 Server支持PHP:

vim /usr/local/etc/apache22/httpd.conf

1.大约354行

在AddType application/x-gzip .gz .tgz下面添加以下内容:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

2.大约212行

添加’index.php’ 到’DirectoryIndex’ 主目录索引:

DirectoryIndex index.php index.html

3.第152行

DocumentRoot "/home/www"  #存放web的路径,根据自己需求更改

4.第178行

<Directory "/home/www">   #存放web的路径,这个根据自己需求更改

二、安装PHP 5.2

cd /usr/ports/lang/php52
make install clean

选择如下安装选项:

去掉IPV6
添加CLI、CGI、APACHE、SUHOSION、FASTCGI、PATHINFO

三、安装PHP 5.2-extensions扩展

cd /usr/ports/lang/php52-extensions
make config
make install clean

make config安装添加选项如下:

添加BZ2、CALENDAR、CTYPE、GD、GETTEXT、ICONV、MBSTRING、MCRYPT、MHASH、MYSQL、MYSQLI、OPENSSL、PCRE、POSIX、SESSION、SOCKETS、TOKENIZER、ZIP、ZLIB。

我在线上服务器的centos5.4下,一个个手动源码编译PHP 5的扩展包,感觉是件非常痛苦的事情;Apache如是,Nginx下亦如是;在FreeBSD 8下一切都简单了,这个过程有点长。

复制/usr/local/etc/php.ini-dist为/usr/local/etc/php.ini:

cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

四、安装ZendOptimizer

cd /usr/ports/devel/ZendOptimizer
make install clean

安装完成提示如下:

********************************************************************************
You have installed the ZendOptimizer package.
Edit /usr/local/etc/php.ini and add:
[zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
*********************************************************************

编辑php.ini,复制以上[Zend]内容到文本末尾:

vim /usr/local/etc/php.ini

重新启动你的Web Server.

/usr/local/etc/rc.d/apache22 restart

测试Apche Server对PHP和ZendOptimizer支持,在/home/www里面建立一个index.php,输入以下内容:

<?
phpinfo();
?>

我这里安装此版本为5.2.13,新的PHP已近更新至5.3.3,但是老版本的ZendOptimizer对其不支持,所以本着稳定就好的原则,继续使用5.2.13;

五、安装MySQL Server5.0

cd /usr/ports/databases/mysql50-server
make install clean

配置MySQL

安装完成后,需要编辑/etc/rc.conf文件,添加下面内容到/etc/rc.conf:

mysql_enable="YES"

复制文件:

cp /usr/local/share/mysql/my-medium.cnf /etc/my.conf

启动MySQL服务:

/usr/local/etc/rc.d/mysql-server start

新装的mysql是没有密码的,使用mysqladmin命令更改MySQL密码:

/usr/local/bin/mysqladmin -uroot password ‘你的密码’

例如:/usr/local/bin/mysqladmin -uroot password 12345678

六、安装PHPmyadmin

1.安装

cd /usr/ports/databases/phpmyadmin
make fetch  #只下载,不安装

PHPmyadmin解压以后直接使用了:

cp /usr/ports/distfiles/phpMyAdmin-3.3.2-all-languages.tar.bz2 /home/www    #/home/www为apache指定路径
tar zxvf phpMyAdmin-3.3.2-all-languages.tar.bz2
mv phpMyAdmin-3.3.2-all-languages phpmyadmin      #phpmyadmin文件名就为外部地址路径http://xxx.xxx.xxx.xxx/phpmyadmin

2.配置

cd /home/www/phpmyadmin
cp config.sample.inc.php  config.inc.php

3.修改

ee config.inc.php
cfg[‘blowfish_secret’]=’host’;            #随便输入,不要留空这个一定要设置
cfg[‘Servers’][$i][‘auth_type’]=’cookie’#设置认证方式,默认即可

4.设置权限

chmod 755 config.inc.php

这时候你就可以在内网用root等用户进行登陆管理了,PHPMyadmin的强大是有目共睹的,这也是它现在作为Linux/unix发行版的默认软件之一。

值得注意的是,基于线上环境的严谨性,我一般采用64位的Cenots系统,软件均采用源码安装;而以上所述,均是出于开发环境的考虑,即快速方便的部署测试服务器,如果用于线上环境,还需要注意的细巧还有许多,比如PHP要禁用危险的函数、Apache要考虑其Web安全及SSL证书(一个不小心就要考虑支持多域名的SSL证书)等、MySQL要考虑生产环境下的压力及备份等,这里细节繁多就不细述了。

原文链接:http://developer.51cto.com/art/201010/231233.htm

FreeBSD下Lighttpd+PHP+Mysql安装配置笔记

FreeBSD下Lighttpd+PHP+Mysql安装配置笔记

1,安装mysql

cd /usr/ports/database/mysql51-server
make install clean

2,安装lighttpd

cd /usr/ports/www/lighttpd
make install clean
(默认选项)

3,安装php5

cd /usr/ports/lang/php5
make install clean
(默认选项)

4,安装php5-extensions

cd /usr/ports/lang/php5-extensions
make install clean

增加GD,MBSTRING,MCRYPT,MYSQL,MYSQLI

5,配置lighttpd

vi /usr/local/etc/lighttpd.conf

取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,
mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog

取消fastcgi.server的注释
fastcgi.server = ( “.php” =>
( “localhost” =>
(
“socket” => “/var/run/lighttpd/php-fastcgi.socket”,
“bin-path” => “/usr/local/bin/php-cgi”
)
)
)

另:
touch /var/log/lighttpd.access.log
touch /var/log/lighttpd.error.log
mkdir /var/run/lighttpd
chown -R www:www /var/run/lighttpd
chown www:www /var/log/lighttpd.access.log
chown www:www /var/log/lighttpd.error.log

6,启动lighttpd和mysql

vi /etc/rc.conf

增加
mysql_enable=”YES”
lighttpd_enable=”YES”

执行
/usr/local/etc/rc.d/lighttpd start
/usr/local/etc/rc.d/mysql start

原文链接:http://garey.bsdart.org/2009/12/freebsd7-2%E4%B8%8Blighttpdphpmysql%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%E7%AC%94%E8%AE%B0/

FreeBSD DHCP服务安装笔记

一、编译内核

device bpf

bpf设备是DHCP服务必需的,FreeBSD系统默认的GENERIC内核已经包含此设备,如果您的系统内核是经过修改的,请注意此设备是否已经添加。

二、安装DHCP Server

# cd /usr/ports/net/isc-dhcp31-server
# make install clean

三、配置DHCP服务

# vi /usr/local/etc/dhcpd.conf

option domain-name "example.com";  //这个选项指定了提供给客户机作为默认搜索域的域名。
option domain-name-servers 192.168.0.100;  //这个选项用于指定一组客户机使用的DNS服务器,它们之间以逗号分隔。
option subnet-mask 255.255.255.0;  //提供给客户机的子网掩码。

default-lease-time 3600;  //客户机可以请求租约的有效期,而如果没有,则服务器将指定一个租约有效期,也就是这个值(单位是秒)。
max-lease-time 86400;  //这是服务器允许租出地址的最大时长。如果客户机请求了更长的租期,则它将得到一个地址,但其租期仅限于max-lease-time秒。
ddns-update-style none;  //这个选项用于指定DHCP服务器在一个地址被接受或释放时是否应对应尝试更新DNS。在ISC实现中,这一选项是必须指定的。

subnet 192.168.0.0 netmask 255.255.255.0 {  //配置DHCP地址池
  range 192.168.0.120 192.168.0.250;  //指定地址池中可以用来分配给客户机的IP地址范围。在这个范围之间,以及其边界的IP地址将分配给客户机。
  option routers 192.168.0.1;  //定义客户机的默认网关。
}

host mailhost.example.com {  //分配静态IP地址
  hardware ethernet 02:03:04:05:06:07;  //主机的硬件MAC地址(这样DHCP服务器就能够在接到请求时知道请求的主机身份)。
  fixed-address 192.168.0.150;  //指定固定IP地址
}

四、启动DHCP服务

# vi /etc/rc.conf

dhcpd_enable="YES"
dhcpd_ifaces="dc0"  //dc0为DHCP服务器需要监听DHCP客户端请求的接口

# /usr/local/etc/rc.d/isc-dhcpd start

FreeBSD下sudo的使用

FreeBSD下sudo的使用

sudo是OpenBSD的一部分,其作者是 Todd C. Miller。在 FreeBSD 中可以使用 ports 或 package 来安装。

下面来安装并使用sudo吧!!

  1)安装sudo(两种安装方法):
      a: 从 ports 安装(推荐)
         #cd /usr/ports/security/sudo
         #make install clean
      b: 通过 package 安装
         #pkg_add -r sudo

  2)配置sudo
     sudo的配置文件在/usr/local/etc/sudoers里面。sudo的配置文件不应直接编辑,而应使用 visudo 来进行修改。
     配置权限的格式如下:
        USER MACHINE=(EFFECTIVE USER)  [NOPASSWD:] COMMAND
      第一列(USER)指定要授权的帐号。第二列(MACHINE)定义在那些机器上,这条执行生效,其好处是在多台机器上使用同一份配置文件。括号里的(EFFECTIVE USER)是使用指定实际执行该命令的帐号,
      这就方便一个帐号允许用另外一个帐号来执行特定的命令,而不非得是root帐号。第四列(COMMAND)是指定的命令. NOPASSWD是可选项代表USER在sudo到某身份时不必输入该身份的密码即可执行命令。
     下面是配置sudo的简单方法:
        M-gtuiw ALL=(ALL) ALL
     指定了M-gtuiw可以在任何地点以任何身份执行整个系统的全部命令。
       %wheel ALL=(ALL) ALL
     这个命令指定了wheel这个组的用户可以在任何地点以任何身份执行整个系统的全部命令。
        M-gtuiw ALL=(apache) /usr/bin
     指定了M-gtuiw可以在任何地点但只能以apache用户身份且只能执行/usr/bin目录下的命令。
        M-gtuiw ALL= /usr/bin
     等同于M-gtuiw ALL=(root) /usr/bin

  3)设置密码在一段时间后自动退出
     Defaults:M-gtuiw     timestamp_timeout=0, runaspw, passwd_tries=1
     记住: 在 Defaults:M-gtuiw 这个地方不允许有空格出现。下同:     
     这段句子有三个功能:
     1)M-gtuiw需要root的密码才能运行sudo(句子中runaspw的缘故)。
     2)这密码没有被系统记住(因为有timestamp_timeout=0的缘故),用了一次的sudo之后当再次使用时又得输入root密码。
       如果将timastamp_timeout改为-1话,M-gtuiw只须去验证一次密码,之后将记住了M-gtuiw输入的密码,当第二次,第三次
       使用sudo的时候都不用输入root密码了直到退出登录。
       当然,其它的用户也可以这样,但须要不同的帐户和缺省值。在这里我们只改变M-gtuiw和增加一个新的用户“limda”:
          Defaults:M-gtuiw               timestamp_timeout=0
          Defaults:limda                  timestamp_timeout=-1, runaspw
          #user privilege specification
          root          ALL=(ALL) ALL
          M-gtuiw       ALL=(ALL) ALL
          limda         ALL=(ALL) ALL
       M-gtuiw和limda拥有不同的缺省值。“Defaults”影响着每个用户使用sudo不同的权限。

  4)sudo默认使用系统的 /var/log/messages 作为其日志文件;除此之外,也可以采用另外的日志,以便于进行审计。
      Defaults logfile=/var/log/sudolog
      记住,在上面没有 : 啊。

  5) 限制sudo使用危险的命令:
        M-gtuiw ALL=/bin/kill, /usr/sbin/
  这里说明M-gtuiw用户只可以使用/bin/kill这个命令和/usr/sbin/里面的命令。
        M-gtuiw lnserve=(paul, limda) /bin/kill, /usr/sbin/
  说明了M-gtuiw只能在lnserv指定的机算机中以paul和limda的身份使用/bin/kill和/usr/sbin里面的命令。

  6)sudo限制使用某些命令
        M-gtuiw ALL=ALL, !/bin/rm
  这里说明了M-gtuiw可以用除了/bin/rm之外的所有命令,在/bin/rm前面加上 ! 号就是为了限制使用这个命令。
  这是我在sudo的网页里翻译出来的一些简单文本,本人的英文不是很好,翻译的不是很好,欢迎各位前来修正。

  7)sudo时不输入密码直接执行命令
        M-gtuiw ALL=(ALL) NOPASSWD: /usr/local/sbin/VBoxClient,/sbin/mount -t ntfs /dev/hda5 /d-driver
  这里说明M-gtuiw在执行/usr/local/sbin/VBoxClient以及mount hda5时,不必输入root密码就可以root权限执行,
  这里RUNAS为ALL实际上是指M-gtuiw可以sudo成任何身份且不必输入该身份的密码就可以执行后面的命令,当然root身份也不在话下。
  NOPASSWD特别危险切记要让正确的人使用正确的命令。
        M-gtuiw ALL=(ALL) NOPASSWD: ALL
  这里说明M-gtuiw执行所有命令都不必输入密码,这极其危险。慎用。
        M-gtuiw ALL=(ALL) ALL, NOPASSWD: /sbin/mount -t ntfs /dev/hda5 /d-driver
  也可以让M-gtuiw用户可以sudo所有命令,但只针对某些命令不必输入密码。

原文链接:http://wiki.freebsdchina.org/doc/s/sudo_with_sudo