FreeBSD學(xué)習(xí)指南

FreeBSD 的版本命名規(guī)則
A-主要版本編號
B-次要版本編號
C-修正版本編號
TAG-名稱標(biāo)簽,如 RELEASE、STABLE、CURRENT
install.iso 安裝時用這一片即可!mini.iso 也是可以用來安裝,但里面沒有一些常用的 Package ,所以檔案比較小。
硬盤分割表的概念
IDE 硬盤在 FreeBSD 中的代號分別是 ad0 、ad1 ,在 FreeBSD 可將主要扇區(qū)分割成許多邏輯扇區(qū) logical slice ,a 在傳統(tǒng)上是指根目錄,b 是指 swap 虛擬內(nèi)存,c 指整個主要扇區(qū),d 指整個硬盤, efgh 可以任意使用!
改變 inode 的設(shè)定
按 N 并輸入?yún)?shù) newfs -i 1024 -b 4096 -f 1024
選安裝套件,除了最后二項(xiàng) local 和 XFree86 外,全部都選。
在 Configuration Menu 所做的設(shè)定都會存放在 /etc/rc.conf 中,可以修改這個檔案!
安裝完 FreeBSD 要安裝的軟件 vim-lite less gnuls pkg_tree elm+ME bash2 unzip nmap wget ncftp3 pstree
FreeBSD 的目錄結(jié)構(gòu)
/etc/defaults | 放置預(yù)設(shè)的系統(tǒng)設(shè)定文件。 |
/etc/mtree | 目錄權(quán)限的設(shè)定文件。 |
/etc/periodic | 每天、每周、每月定時要執(zhí)行的設(shè)定。 |
/usr/ports | FreeBSD 移植軟件的原始程序目錄,我們可以從這個目錄中找到自己想要的軟件來快速安裝。 |
/usr/src | 放置 BSD 或其它軟件原始程序代碼的目錄。 |
/var/account | 使用者執(zhí)行過的指令記錄文件。 |
/var/db | 重要的系統(tǒng)數(shù)據(jù)庫。 |
/var/quotas | 檔案系統(tǒng)使用容量限制的記錄。 |
修改、編譯核心
/usr/src/sys/i386/conf 中有二個檔案,一個是 GENERIC ,是安裝時用的一般核心,一個是 LINT 則是完整的核心及說明。
編譯新的核心
options QUOTA
pseudo-device snp 可以監(jiān)看使用者
#NAT
一、options IPFIREWALL
#支援 NAT
二、options IPDIVERT
#下面這一行是預(yù)設(shè)允許所有的封包通過,如果沒有這一行,就必須在 /etc/rc.firewall 中設(shè)定封包的規(guī)則
三、options IPFIREWALL_DEFAULT_TO_ACCEPT
#下面一行是讓您可以在 ipfw 中設(shè)定要記錄哪些封包,如果沒有這一行,這算設(shè)定了要留下記錄也不會有作用
四、options IPFIREWALL_VERBOSE
#防火墻
除了 NAT 的一、三、四外
#這一行是限制每一條規(guī)則所要記錄的封包數(shù)量,因?yàn)橥瑯拥囊?guī)則可能有許多的記錄,加上這一條可以使同樣的記錄重復(fù)數(shù)減少,以避免記錄文件爆。
options IPFIREWALL_VERBOSE_LIMIT=10
#下面這一行是用來支持封包轉(zhuǎn)向,當(dāng)您要使用 fwd 動作時必須要有這一項(xiàng)設(shè)定
options IPFIREWALL_FORWARD
#如果要使用 pipe 來限制頻寬,必須加入下列選項(xiàng)以支持 dummynet
options DUMMYNET
編譯核心第一種方法
config GENERIC
cd ../../compile/GENERIC/
make depend;make;make install
第二種方法
在 FreeBSD 4.2-STABLE 之后可以用的新的方法
cd /usr/src
make buildkernel KERNCONF=GENERIC
make installkernel KERNCONF=GENERIC
cd /;rm -rf /usr/src/sys/compile/GENERIC
sync;sync;sync;reboot
新的核心有問題時
當(dāng)編譯完核心重新開機(jī),無法進(jìn)入 FreeBSD 時,要在開機(jī)時看到倒數(shù)計(jì)時的時候,按 Enter 以外的鍵,會出現(xiàn) boot:,這時候就打 unload 來將已加載的數(shù)據(jù)移除,再打 /kernel.old 以使用舊的核心。萬一連舊的核心也不能開機(jī),就要使用安裝時的核心,/kernel.GENERIC,如果您想刪掉壞的核心,由于 kernel 文件有特殊的檔案屬性,必須先下指令修改屬性才能刪除。
chflags noschg /kernel
建立友善的使用者接口
編輯 /etc/csh.cshrc 或 /.cshrc 使用 tcsh 或 csh shell 時
加入 alias ls gnuls --color -F
如果想要新增使用時都能加入,則要修改 /usr/share/skel/dot.cshrc
想改 PATH 及一些設(shè)定也是在 /usr/share/skel 下的一些檔案修改
常見的環(huán)境變量
EDITOR:設(shè)定文書編輯器
PAGER:設(shè)定分頁程序 more 或 less
支持中文的環(huán)境,只支持 tcsh csh
編輯 /etc/csh.login
setenv ENABLE_STARTUP_LOCALE zh_TW.Big5
# 使用遠(yuǎn)程登入時才能打出中文
setenv LC_CTYPE is_IS.ISO_8859-1
# Console 下用才能打出中文
setenv LANG zh_TW.Big5
如果是 bash 要改用
export ENABLE_STARTUP_LOCALE='zh_TW.Big5'
export LC_CTYPE='is_IS.ISO_8859-1'
export LANG='zh_TW.Big5'
取消登入后,會自動秀出的一段文字 修改 /etc/motd Message Of The Day
如果不希望 motd 內(nèi)容出現(xiàn) FreeBSD 的版本信息,可以在 /etc/rc.conf 中加入
update_motd="YES"
FreeBSD 的賬號管理
adduser 新增使用者
pw groupadd newgroup 新增一個群組
pw groupshow newgroup 顯示成果
vipw
FreeBSD 使用 shadow passowrd 的方式來保護(hù)密碼文件,只有 root 才可以讀取編碼過的密碼文件 /etc/master.passwd ,但是這并不是系統(tǒng)用來驗(yàn)證的檔案,為了加快速度,F(xiàn)reeBSD 將該文件做成數(shù)據(jù)庫 /etc/spwd.db 及 /etc/pw.db ,因此修改完 master.passwd 后要下指令 pwd_mkdb 來將 master.passwd 做成數(shù)據(jù)庫,但使用 vipw 就會自動完成這項(xiàng)工作!
rmuser 刪除使用者
FreeBSD 磁盤配額
一、在核心設(shè)定中加入 options QUOTA 這一行,并重新編譯核心。
二、在 /etc/rc.conf 加入 enable_quotas="YES"
三、在 /etc/fstab 中加入要啟動磁盤限制的分割區(qū)中加入?yún)?shù) userquota
Options 下 rw 的后面加入 rw,userquota
好了之后重新開機(jī),再下 edquota -u username 來限制
在 4.5-RELEASE 中,開機(jī)內(nèi)定會檢查所有使用者的 quota ,如果不要檢查,就在 /etc/rc.conf 中加入 check_quotas="NO"。
FreeBSD 網(wǎng)絡(luò)相關(guān)指令
ftp -a 以匿名者自動登入
sockstat 查看主機(jī) internet 或 domain socket 。您可以用來查詢有誰連到您的機(jī)器中,由哪一個網(wǎng)絡(luò)服務(wù)接收,該網(wǎng)絡(luò)服務(wù)的 PID 是多少,還可以查詢本機(jī)開放了哪些 Port ,提供了哪些服務(wù)。
/etc 下的檔案介紹
csh.cshrc 這是 csh tcsh 用的內(nèi)定 .cshrc 檔案,也就是進(jìn)入該 Shell 時會加載的設(shè)定。
csh.login 這是 csh tcsh 用的內(nèi)定 .login 檔案,也就是進(jìn)入該 Shell 時會加載的設(shè)定。
defaults/make.conf 通常會復(fù)制一份到 /etc 下,用 port 安裝軟件時,會參考這個檔案,把里面的 FTP 站臺改成距離國內(nèi)比較近的。
login.access 用來設(shè)定登入系統(tǒng)使用者的權(quán)限,我們可以在這里設(shè)定是否允許使用者從 console 登入、從不同的區(qū)域登入的權(quán)限等。
login.conf 這個檔案用來控制不同賬號可以使用的系統(tǒng)資源,它會依照使用者在密碼文件中的 login class 來尋找相對的 class 設(shè)定,如果沒有分類則使用 default 的默認(rèn)值。修改完該檔后,要執(zhí)行 cap_mkdb /etc/login.conf 重建系統(tǒng)數(shù)據(jù)庫。
newsyslog.conf 用來定期檢查 /var/log/ 的檔案,設(shè)定當(dāng) log 到一定大小或是定期的將舊的檔案壓縮備份,并刪除太老舊的檔案。
語法:logfilename [owner:group] mode count size when [ZB] [/pid_file] [sig_num]
logfilename | log 文件名稱 |
[owner:group] | log 檔擁有人:群組 |
mode | 該 log 文件的權(quán)限[檔案屬性] |
count | 最多計(jì)算到多少,例如 cron 是 3 ,表示有 4 個壓縮檔,從 cron.0.gz 到 cron.3.gz |
size | 檔案最大到多少即壓縮備份,以 KB 計(jì)。 |
when | 什么時候做備份,請 man newsyslog 來看詳細(xì)說明。以 @ 為首代表用 ISO 8601 結(jié)構(gòu)的時間格式。以 $ 為首代表使用每天、每周、每月。
$D0 每天半夜十二點(diǎn) $D23 每天 23:00 時 $W0D23 每周日 23:00 $W5D16 每周五 16:00 $MLD0 每月最一天半夜十二點(diǎn) $M5D6 每月第五天 6:00 |
[ZB] | Z 表示要將該檔以 gzip 壓縮,B 代表該檔是 binary 檔。 |
[/pid_file] | pid 文件的絕對路徑 |
[sig_num] | 要送給該 daemon 程的 signal number |
FreeBSD 的軟件安裝
一、packages 安裝
pkg_add -v filename.tgz 擴(kuò)展名是 tgz
所有安裝過的軟件都會出現(xiàn)在 /var/db/pkg 的目錄中。
pkg_delete filename 刪除軟件
pkg_info filename.tgz 查看這個軟件的信息。
pkg_info 查看系統(tǒng)中所有已安裝軟件的信息。
pkg_tree 可以讓我了解每一套軟件之間的關(guān)系,不過要先安裝!
cd /usr/ports/sysutils/pkg_tree
make install clean
pkg_tree | more 來查看各軟件之間的關(guān)系。
用 packages 安裝的軟件,不能馬上執(zhí)行,要馬上能執(zhí)行要先執(zhí)行 rehash 或注銷后再重新登入即可執(zhí)行。
二、ports
把在 A 系統(tǒng)上面可以正常運(yùn)作的程序,修正成 B 系統(tǒng)上也能正常執(zhí)行的工作,稱為 Port。
抓 port.tar.gz 檔案回來,放在 /usr 下解壓縮
要安裝哪一種軟件就切換到它分類的目錄中,如要安裝 proftpd ,目錄就在 /usr/ports/ftp/profptd 中,執(zhí)行 make install 即可,它除了安裝 proftpd 外,還會把缺的檔案也一起抓回來安裝,安裝完后可執(zhí)行 make clean 把安裝編譯過程中產(chǎn)生的一個檔案清除。
尋找需要安裝的 Port
在 /usr/ports 使用 make search key="ncftp" | less
反安裝軟件,只要在該軟件的目錄中執(zhí)行 make deinstall 即可。
一些不常用的 make 方式
make fetch 抓回所需的原始檔
make fetch-list 顯示安裝所需的檔案
make all install 抓回原始檔、編譯且安裝
make reinstall 若先前發(fā)生意外中斷,重新嘗試安裝。
如果安裝完新的軟件之后,如果使用的 Shell 是 csh 或 tcsh ,我們可能必須執(zhí)行 rehash 來重建 hash table ,才能執(zhí)行安裝好的軟件。
FreeBSD 安裝 Mysql、PHP、Apache
在 /etc/group 加入 mysql:*:100:
執(zhí)行 vipw 加入一行
mysql:*:100:100::0:0:Mysql User:/usr/local/mysql:/sbin/nologin
tar -xvzf mysql-3.23.52.tar.gz
cd mysql-3.23.52
./configure --prefix=/usr/local/mysql --with-charset=big5 --with-low-memory --with-named-thread-libs=-lc_r
make;make install
script/mysql_install_db
chown -R mysql:msqyl /usr/local/mysql
cd /usr/local/mysql/share/mysql
./mysql.server.start
/usr/local/mysql/bin/mysqladmin -u root -password 'xxxx';
grant all privileges on dbname.* to username@localhost IDENTIFIED BY 'password';
grant all privileges on *.* to username@localhost IDENTIFIED BY 'password';
flush privileges;
在 /etc/rc.local 加入一行
/usr/local/mysql/share/mysql/mysql.server start
備分?jǐn)?shù)據(jù)庫
/usr/local/mysql/bin/mysqldump -u root -p dbname > dbname.sql 備份
/usr/local/mysql/bin/mysql -u root -p dbname < dbname.sql 還原 之前可能要先把數(shù)據(jù)庫建好
更改使用者密碼
/usr/local/mysql/bin/mysqladmin -u root -p password newpassword
二、安裝 PHP、Apache
apache_1.3.27.tar.gz
mod_fastcgi_2.2.12.tar.gz
php-4.2.3.tar.gz
gd-1.84.tar.gz
zlib-1.1.4.tar.gz
t1lib-1.3.1.tgz
freetype2-2.0.6.tgz
jpeg-6b_1.tgz
png-1.2.1.tgz
先解壓縮 apache 并做一次 Apache 的組態(tài)
tar -xvzf apache-1.3.27.tar.gz
./configure --prefix=/usr/local/apache
cd ..
tar -xvzf zlib-1.1.4.tar.gz
cd zlib-1.1.4
make all install
cd ..
pkg_add -v jpeg-6b_1.tgz
pkg_add -v png-1.2.1.tgz
pkg_add -v t1lib-1,3,1,tgz
pkg_add -v freetype2-2.0.6.tgz
tar -xvzf gd-1.8.4.tar.gz
cd gd-1.8.4
make install
cd ..
安裝 PHP
tar -xvzf php-4.2.3.tar.gz
cd php-4.2.3
./configure --with-mysql=/usr/local/mysql --with-apache=../apache-1.3.27 --enable-track-vars --with-gd=/usr/local --enable-gd-native-ttf --with-t1lib --with-jpeg-dir=/usr/local --with-png-dir --with-freetype-dir --with-zlib-dir
make;make install
cp php.ini-dist /usr/local/lib/php.ini
cd ..
安裝 Apache
cd apache_1.3.27/src/modules
tar -xvzf ../../../mod_fastcgi-2.2.12.tar.gz
mv mod_fastcgi-2.2.12 fastcgi
cd ../../
./configure --prefix=/usr/local/apache --enable-shared=max --activate-module=src/modules/php4/libphp4.a --activate-module=src/modules/fastcgi/libfastcgi.a --enable-suexec --suexec-caller=nobody --suexec-docroot=/usr/local/apache/htdocs --suexec-userdir=www --suexec-logfile=/usr/local/apache/logs/suexec_log --suexec-uidmin=10 --suexec-gidmin=10
make;make install
加入對 PHP4 的支持
在 /usr/local/apache/conf/httpd.conf 加入二行
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
讓 Apache 在開機(jī)時能夠啟動
在 /etc/rc.local 加入 /usr/local/apache/bin/apachectl start
在 /etc/newsyslog.conf 加入二行以壓縮備份 Apache Log 檔
/var/log/apache_access_log 644 7 * $W0D1 Z
/var/log/apache_error_log 644 7 * $W0D2 Z
安裝 ProFtpd
Make sure you have the following lines in your PAM configuration file
so that ProFTPd's PAM module can authenticate users correctly.
ftpd auth required pam_unix.so try_first_pass
ftpd account required pam_unix.so try_first_pass
ftpd session required pam_permit.so
###
===> Generating temporary packing list
===> Compressing manual pages for proftpd-1.2.6
===> Registering installation for proftpd-1.2.6
===> SECURITY NOTE:
This port has installed the following startup scripts which may cause
network services to be started at boot time.
/usr/local/etc/rc.d/proftpd.sh.sample
安裝 SNMP
If you want to invoke snmpd from startup, put these lines into
/etc/rc.conf.
net_snmpd_enable="YES"
net_snmpd_flags=""
**** You can specify make variables as:
NET_SNMP_SYS_CONTACT="kuriyama@FreeBSD.org"
NET_SNMP_SYS_LOCATION="Tokyo, Japan"
DEFAULT_SNMP_VERSION=3
NET_SNMP_LOGFILE=/var/log/snmpd.log
NET_SNMP_PERSISTENTDIR=/var/net-snmp
to define default values (or overwriting defaults). At least
setting first two variables, you will not be prompted during
configuration process. Or you can set
BATCH="yes"
to make to avoid interactive configuration.===> Compressing manual pages for net-snmp-5.0.6
===> Running ldconfig
/sbin/ldconfig -m /usr/local/lib
===> Registering installation for net-snmp-5.0.6
===> SECURITY NOTE:
This port has installed the following startup scripts which may cause
network services to be started at boot time.
/usr/local/etc/rc.d/snmpd.sh
安裝 NAT
修改 /etc/rc.conf
一塊網(wǎng)絡(luò)卡 ifconfig_rl0_alias0="inet 192.168.1.1 netmask 255.255.255.0"
二塊網(wǎng)絡(luò)卡 ifconfig_rl1="inet 192.168.1.1 netmask 255.255.255.0"
加入下列五行
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_interface="rl0"
natd_enable="YES"
FreeBSD 指令集
cp -p 檔案拷貝過去還是維持原來的權(quán)限
避免 /bin 及 /sbin 等重要執(zhí)行檔遭到修改,可以為這些檔案設(shè)定禁止修改的 schg flag
chflags schg /bin/*
chflags schg /sbin/*
設(shè)定了 schg ,還要將 Kernel Security Level 調(diào)高到 1 以上,這樣連 root 都不可以移除 flags 。
Kernel Security Level
FreeBSD 中有所謂的 Security Level ,它掌控了系統(tǒng)核心的行為運(yùn)作。只有 root 可以使用指令提高 Security Level ,但不能降低它。如果要降低它,必須在 rc.conf 中設(shè)定,并重新開機(jī)。
Security Level 代表的意義:
-1:永遠(yuǎn)不安全模式。這是默認(rèn)值。如果為 -1 ,它將永遠(yuǎn)以 Level 0 的模式執(zhí)行。
0 :不安全模式。使用者或 root 可以使用 chflags 來移除「不可更動」及「只能附加」的 flags。所有的裝置只能依其權(quán)限來存取。
1:安全模式。不可以移除「不可更動」及「只能附加」的 flags 。不可以手動加載或移除 LKM ,使用 /dev/mem /dev/kmem 只能只讀,且不能 newfs 已掛上的檔案系統(tǒng)。
2:高度安全模式。除了和安全模式同樣的限制外,不管硬盤是否掛上,都不可以 newfs。另外,Kernel Time 的改變限制在一秒內(nèi),如果超過,會記錄 "Time adjust-ment clamped to +1 second".
3:網(wǎng)絡(luò)安全模式。除了和安全模式同樣的限制外,還有 IP 封包過濾的規(guī)則,而且不可以調(diào)整 dummynet 的設(shè)定。
可以利用 sysctl 來顯示或設(shè)定 Security Level
sysctl kern.securelevel
將 Security Level 設(shè)為 1
sysctl -w kernel.securelevel=1
當(dāng)我們將 Security Level 設(shè)為 1 以上時,我們會發(fā)現(xiàn)沒有辦法安裝新的 Kernel ,因?yàn)椴荒芤瞥?schg flag ,也沒有辦法使用 big5con 、 X Window 等軟件。如果 FreeBSD 只作 Server ,就可以把 Security Level 的值調(diào)高一點(diǎn)。
在開機(jī)時設(shè)定 Security Level ,可以在 /etc/rc.conf 中加入以下二行設(shè)定
#是否啟動 Security Level
kern_securelevel_enable="YES"
# Level 從 -1 到 3
kern_securelevel="1"
只能用 root 使用指令提高 Security Level,但不能降低,如果要降低,必須在 /etc/rc.conf 中設(shè)定,重新開機(jī)才會生效。
限制使用者郵件容量就是將使用者的郵件從 /var/mail 中搬移到使用者的目錄中,再對使用者目錄做磁盤配額的限制。
cd /var/mail
mkdir /home/username/mail
mv /var/mail/username /home/username/mail
ln -s /home/username/mail username
限制 crontab 和 at 的使用
在 /var/cron 目錄中編輯 allow 的文字文件,里面的人才可以使用 cron
deny 的文字文件,里面的人不可以使用 cron
at 也是一樣的設(shè)定。
停止 Sendmail 在 /etc/rc.conf 中加入 sendmail_enable="NO"
使用 sysctl 來設(shè)定當(dāng)外部機(jī)器要使用我們沒有提供的服務(wù)時運(yùn)記錄下來,例如有人嘗試掃我們的 Port ,或者我們沒有開放 telnet ,在 /var/log/message 中便會記錄下來。
#sysctl -w net.inet.tcp.log_in_vain=1
#sysctl -w net.inet.udp.log_in_vain=1
這二行加入 /etc/rc.local 中 或是在 /etc/sysctl.conf 加入下面二行
net.inet.tcp.log_in_vain=1
net.inet.udp.log_in_vain=1
在 /etc/rc.conf 加入一行停止 inted 服務(wù)
inetd_enable="NO"
為了防止一些 DoS (Deny of Service) ,建議最好把 ICMP 重導(dǎo)向 ( redirect ) 的封包丟棄,可以在 /etc/rc.conf 中加入以下的設(shè)定:
# YES 表示丟棄 ICMP REDIRECT 封包
icmp_drop_redirect="YES"
# YES 表示將丟棄的封包記錄下來
icmp_log_redirect="YES
sshd 預(yù)設(shè)并未將使用者登入的數(shù)據(jù)記錄下來,可以利用修改 /etc/syslog.conf 來記錄,找到 seccrity 的項(xiàng)目,將它修改成下面這樣:
security.*;auth.info /var/log/security
如此一來,當(dāng)使用者利用 ssh 登入時,便會記錄在 /var/log/security 中。
netstat -a | grep LISTEN
sysctl -a 可以列出目前 Kernel 狀態(tài)值的設(shè)定
列出空間使用最多的前 5 位
du -s /home/* | sort -m | head -5
FreeBSD 有一種特別的權(quán)限控制,稱之為「flags」,這些 flags 的設(shè)定可以讓我們用來保護(hù)特殊的檔案??梢杂?ls -ol 來加以觀看。
nodump | 檔案不可以被 dump,只有檔案擁有者和 root 可以設(shè)定 |
sappnd | 檔案只可以往后附加,不能刪除,只有 root 可以設(shè)定 |
schg | 檔案不可以被更動,連 root 都不能刪除,只有 root 可以設(shè)定 |
uappnd | 檔案只可以往后附加,不能刪除,檔案擁有者和 root 才可以設(shè)定 |
uchg | 檔案不可以被更動,檔案擁有者和 root 才可以設(shè)定 |
如果我們要解除所設(shè)定的 flags ,只要在上述的 flag 之前加上 no 即可,例如 nouchg 。
用法:chflags flags file
flags 的設(shè)定只有在 Kernel Security Level 為 -1 或 0 時才可以被更改。如果 Security Level 為 1 或 2 時就不能更動 flags 了。
FreeBSD 下的 Samba Server
tar -xvzf samba-2.2.7.tar.gz
cd samba-2.2.7/source
docs 中有許多相當(dāng)有用的文件,值得一讀
./configure
make;make install
啟動 Samba
以 Standalone 方式
在 /etc/rc.local 中加入
smbd -D -d1
nmbd -D -d1 -G FreeBSD -n SambaServer
-D 以 Daemon 方式運(yùn)行
-d1 除錯記錄型別
-G 顯示在 Windows 之網(wǎng)絡(luò)芳鄰中的 Workgroup 名稱
-n Samab Server 在 Workgroup 之內(nèi)計(jì)算機(jī)名稱。
以 Inetd 方式啟動
修改 /etc/services ,檢查是否有底下二行存在
netbios-ssn 139/tcp
netbios-ns 137/udp
/etc/inetd.conf 是否有以下二行存在
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd
netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd
設(shè)定檔設(shè)置在 /usr/local/samba/lib/smb.conf
Samba 的使用者賬號與密碼文件位于 /usr/local/samba/private 之中,檔名為 smbpasswd ,如果這個檔案不存在,Samba Server 將無法允許任何人登入。建立 smbpasswd 的方法有三種:
一、直接采用 SWAT 之 PASSWORD 選單,選取 Add New User 來建立。
二、使用 mksmbpasswd.sh 來轉(zhuǎn)換 /etc/passwd 或是賬號清單
這種方法直接把 Linux / FreeBSD 的賬號密碼數(shù)據(jù)文件轉(zhuǎn)換成 Samba 的檔案密碼數(shù)據(jù)文件格式,這方法可以很快地把所有在工作站上有賬號的使用者都同時在 Samba Server 使用賬號開好。但是您仍舊必須要用 SWAT 的 PASSWORD 選單來更改密碼。
mksmbpasswd.sh < /etc/passwd > /usr/local/samba/private/smbpasswd
采用 mksmbpasswd.sh 有一個缺點(diǎn),就是會把 /etc/passwd 中所有的賬號,無論是有效或是無效的都轉(zhuǎn)換,所以建置出來的 smbpasswd 會很復(fù)雜。
三、
在 Windows NT 中,我們可以設(shè)定使用者名稱及密碼。如果在這里設(shè)定為 share,就是只使用密碼;而設(shè)為 user ,則是要輸入使用者名稱及密碼。如果我們設(shè)為 user ,Client 端在瀏覽網(wǎng)絡(luò)芳鄰時,Windows 會自動輸入使用者名稱為登入 Windows 時所用的名稱,我們必須在 Samba 中加入相對的使用者密碼。
For Traditional Chiese User
client code page=950
;coding system=cap
valid chars=0xb9
FreeBSD 下的 DHCP Server
tar -xvzf dhcp-3.0pl1.tar.gz
cd dhcp-3.0pl1
./configure
make all;make install
執(zhí)行 /usr/sbin/dhcpd
設(shè)定檔在 /etc/dhcpd.conf
內(nèi)容:
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
ddns-update-style ad-hoc;
# option definitions common to all supported networks...
option domain-name "tces.ilc.edu.tw";
option domain-name-servers 140.111.152.3, 140.111.66.1, 140.111.66.10;
# ddns-update-style;
default-lease-time 600;
max-lease-time 7200;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
subnet 140.111.152.0 netmask 255.255.255.0 {
range 140.111.152.50 140.111.152.100;
option domain-name-servers 140.111.152.3, 140.111.66.1, 140.111.66.10;
option domain-name "tces.ilc.edu.tw";
option routers 140.111.152.254;
option broadcast-address 140.111.152.255;
default-lease-time 600;
max-lease-time 7200;
}
# Hosts which require special configuration options can be listed in
# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.
host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95;
filename "vmunix.passacaglia";
server-name "toccata.fugue.com";
}
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}
touch /var/db/dhcpd.leases
用 DHCP Server 分配 IP ,但要固定某些機(jī)器的 IP
在那臺機(jī)器上 Ping DHCP Server,在 DHCP Server 執(zhí)行 arp 查出那一臺機(jī)器的 Mac Address ,在 /etc/dhcpd.conf 中設(shè)定
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}
相關(guān)文章
Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié)
這篇文章主要介紹了Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié),需要的朋友可以參考下2023-05-03- 一些朋友問小編FreeBSD如何添加硬盤?別擔(dān)心,今天小編就為大家分享FreeBSD添加硬盤的方法,希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-06
- 今天小編為大家?guī)淼氖荈reebsd PF 安裝使用詳解,希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-06
FreeBSD下zfs: failed with error 6錯誤如何解決?
最近一些朋友問小編 FreeBSD下zfs: failed with error 6錯誤如何解決?今天小編要為大家?guī)淼氖?FreeBSD下zfs: failed with error 6錯誤的解決方法,有需要的朋友一起去看2017-04-06Unix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解
今天小編要為大家?guī)淼氖荱nix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解,希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-01- 今天小編將為大家?guī)淼氖荱nix中的dot命令詳解!希望對大家會有幫助!有需要的朋友一起去看看吧2017-03-22
- 近日!一些朋友對于freebsd時間設(shè)置小節(jié)存在疑慮!下面小編將為大家?guī)淼氖莊reebsd時間設(shè)置小節(jié)詳解!希望對大家會有幫助!有需要的朋友一起去看看吧2017-03-19
- 今天小編要為大家?guī)淼氖莋rub2引導(dǎo)freebsd詳解!希望對大家會有幫助,有需要的朋友一起去看看吧2017-03-19
- 下面小編為大家?guī)淼氖荈reeBSD10安裝內(nèi)核源代碼方法講解!希望能夠幫助到大家!有需要的朋友一起去看看吧2017-03-19
FreeBSD下如何使GraphicsMagick支持中文字體?
最近一些朋友在問FreeBSD下如何使GraphicsMagick支持中文字體?今天小編為大家?guī)淼氖荈reeBSD下使GraphicsMagick支持中文字體的方法!有需要的朋友一起去看看吧2017-03-15