centos 5.1 預設有安裝rsync 但是是關閉的且透過xinet控管
關閉方式:兩種
1.
vim /etc/xinetd.d/rsync
裡面的disable=yes 設成no
2.直接透過chkconfig 來切換
chkconfig --list rsync
rsync off
chkconfig rsync on
這樣就開啟了!
設定好重啟設定
service xinetd reload 完成
使用 rsync (全自動網路備份法)
用rsync對網站進行鏡像備份
以 rsync 進行同步鏡相備份
用rsync做備份(酷!學園 )
傳承科技專門處理硬碟資料遺失,硬碟壞軌及異聲
各式隨身碟資料搶救,不過電及各種記憶卡如SD、MS、XD、CF
精通各種筆電改裝作業系統、MAC APPLE、LINUX、WINXP、VISTA
精緻服務盡在傳承 專業服務快速完工
1003 07/07 希捷Barracuda 7200.11全系列機瘟硬碟,傳承可處理
0925 突破!北京台商研發新隨身碟 插上電腦就可看臺灣頻道
0918 MSN霸道!強制更新9.0版本 剝奪舊版用戶登錄權
0907 告別硬碟 GDrive個資保密引疑慮
0906 為防止Downadup疫情擴大插入隨身碟請暫停使用「自動播放」功能
0903 兩倍牧場容量「2TB」硬碟一顆要8999元
2008年4月28日 星期一
| [+/-] |
[Centos]關於Centos5.1上的rsync啟用與設定 |
2008年4月22日 星期二
| [+/-] |
[Linux]CentOs Overview |
這裡沒有什麼技術高深的文章,正因為不是專家,所以選擇用 CentOS。
我也認識那種非 BSD 不用的技術玩家,或是至少在用 Debian,有時真是羨慕,不過沒有天賦與時間,也志不在此,只是希望能夠用 Linux 架設自己需要的服務,最好能夠不要太複雜,最好是安全性高些,如果您與我有相同的想法,選 CentOS 就對了。
CentOS 說文解字:
Community ENTerprise Operating System
CentOS.org 網站說明這是企業級的伺服平台,提供給不需要商業支援服務的組織或個人免費使用。
感謝開源碼!這種事才真的會發生在現實生活中。紅帽公司目前大概以企業 Linux 平台著稱,如果希望企業能夠多多使用 Linux 用在正式的、嚴肅的以及商業的環境之下,的確需要更安定、安全的系統,於是 Enterprise Linux 就成了很重要的一環。
的確,對於任何高深的玩家來說,Linux 的版本不是那麼重要,透過仔細的調教大概都可以做到,可惜不是每個人都能如此。
Red Hat 的企業 Linux 分成幾種,AS 是最高階,ES 支援到2顆處理器與16GB記憶體上限,WS 是包含了許多開發與測試工具的工作站,Desktop 則是希望進佔使用者日常桌面的桌上型作業系統。
而 CentOS 基本上是 AS 等級。
另外之前有人期待的 RHGFS (=Red Hat Global File System), RHCS (=Red Hat Cluster Suite),CentOS-4 都已經支援,叫做 Global File System 6.1 以及 Cluster Suite 4.0 for CentOS-4,大概是給多台伺服器陣列使用的吧,這我不太明瞭,也還沒機會用到。
CentOS 使用 Yum 的更新機制,非常方便;CentOS.org 可是很努力的,基本上希望在 Red Hat 發佈補丁的72小時之內跟上,而通常都在24小時左右就有了。使用 Yum 安裝或是更新套件都極為便利。
我基本上並不會在 CentOS 上使用 tarball 安裝套件,一定都透過 Yum 安裝 rpm,因為穩定才是王道,如果真要學習、磨練或是嘗鮮,我會去用 Fedora,而在寄望它 24x7 不停歇努力工作的伺服器,還是小心謹慎點就好。
CentOS 真的是對個人與小企業太好了,免費、安全、穩定,很希望能夠多些人使用,也能夠多多交換經驗。
2008年4月20日 星期日
| [+/-] |
[MAIL]安裝Postfix For Ubuntu 7.10 |
首先安裝以Debian的APT來安裝
apt-get install postfix
安過程會出現一個訊息
General type of configuration?
No configuration
Internet Site
Internet with smarthost
satellite system
Local only
如果選第一個No configuration就要照下面步驟做
cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf
/etc/init.d/postfix restart
就算只把Postfix 用於區域網路傳遞也是選擇Internet Site唷~(在這邊我們選這個)
這樣安裝好就有一個/etc/postfix/main.cf 的組態檔了
root@ubuntu:~#less /etc/postfix/main.cf
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = radius_os
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localdomain, localhost, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
接下來要您的組態來設定
觀看是否有啟動netstat -tulpn
tcp 0 0 *:smtp *:* LISTEN 7675/master
介紹一些相關套件
WebMail:
squirrelmail
Mail指令傳送:
Mailx ,mailutils
未完成...
2008年4月19日 星期六
| [+/-] |
[HDD]Linux下如何測試硬碟讀寫效能 |
hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 2548 MB in 2.00 seconds =1293.28 MB/sec
Timing buffered disk reads: 130 MB in 3.03 seconds = 42.56 MB/sec
取得硬碟的最大同步存取 sector 值與目前的 UDMA 模式
hdparm -i /dev/hda
| [+/-] |
[REHL]RedHat Over View |
RedHat Enterprise 跟 Fedora 的核心都是 Linux
不同之處在於軟體
Fedora 的軟體完全屬於 Open Source 的軟體
所以利於研究人員使用或是給ㄧ些不想花錢的人用
而 RedHat 企業版提供了 Application Server 的功能
這種功能可以將許多應用程式集中放在伺服端
讓運算工作集中在ㄧ台電腦上
ㄧ但這樣做就不需要把應用程式裝在每ㄧ台電腦上
例如提款機系統
如果提款機系統的程式要裝在每ㄧ台提款機上
那麼一但系統升級全台灣的提款機都要重灌
但是有應用伺服器的話
就只需要重新設定伺服器就ok了
應用伺服器的觀念很重要的喔
也是目前商機所在
有興趣的話學ㄧ學相關技術
(SOAP RMI EJB 等等都值得學習)
安裝 Red Hat Enterprise Linux 4
| [+/-] |
[燒錄]Linux文字模式下燒錄光碟(ISO) |
基本要知到的
1.cdrecord -scanbus (查詢你燒錄機)
2.cdrecord -scanbus dev=ATAPI (1 ok 就省略)
scsibus1:
1,0,0 100) * 1,1,0 101) 'BENQ ' 'CDRW 5232X ' 'KPBY' Removable CD-ROM
狀況一
現在我們只有一台光碟機~要做像NERO對考~需要兩步驟
1.先將光碟片內容COPY至暫存區
$dd if=/dev/scd0 of=/tmp/fed9_1.iso
2.在來就是做燒錄的動作
$cdrecord dev=1,0,0 speed=8 fs=8m -v -eject -dummy /tmp/fed9_1.iso -dummy 燒錄器所有的動作都執行只有雷射關閉,專用於測試.
注意:cdrecord的參數, fs=8m 和-dummy. fs=8m 定義ring buffer的大小:愈大愈好,根據這個觀點.記住,任何的中斷都算是重大錯誤; fs=8m 建立足夠大的buffer來保持燒錄器的運作如果某些事來減緩資料的傳送. 如果 8 MB不足夠,你可能需要較好的電腦.換句話說,超過8MB是沒有必要的, 如同作業系統會浪費時間來重載MMU (Memory Management Unit)的表格. 預設是4 MB.
狀況二
兩台光碟機的做法
$ cdrecord -v dev=0,1,0 speed=4 -isosize /dev/hdc 一個來源(讀取),一為目的(寫入), 使用參數-isosize 後面接來源光碟
目前會出現一個問題:
write track data: error after 317440 bytes
wodim: the current problem looks like a buffer underrun.
wodim: It looks like 'driveropts=burnfree' does not work for this drive.
wodim: Please report.
wodim: Make sure that you are root, enable DMA and check your HW/OS set up.
目前這個問題還沒解決
出現
以下訊息表示你放了一個空白片所以不能掛載:
mount -a
mount:wrong fs type,bad option,bad superblock on /dev/scd0 ,
missing codepage or other error
In come cases userful info is found in syslog - try
dmesg tail or so
最後我是下載apt-get install k3b 來燒錄~(KDE burning tool)
IDE CD-RW 燒錄機簡易安裝操作說明
2008年4月17日 星期四
| [+/-] |
[PAM]PAM入門介紹 |
PAM(Pluggable Authentication Modules )是由Sun提出的一種認證機制。它通過提供一些
動態鏈接庫和一套統一的API,將系統提供的服務 和該服務的認證方式分開,使得系統管理
員可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程序,同時也便於
向系 統中添加新的認證手段。
PAM最初是集成在Solaris中,目前已移植到其它系統中,如Linux、SunOS、HP-UX 9.0等。
一、PAM的結構
PAM的整個框架結構如下圖所示:
系統管理員通過PAM配置文件來制定認證策略,即指定什麼服務該採用什麼樣的認證方法;應
用程序開發者通過在服務程序中使用PAM API而實現對認證方法的調用;而PAM服務模塊(se
rvice module)的開發者則利用PAM SPI(Service Module API)來編寫認證模塊(主 要是
引出一些函數pam_sm_xxxx( )供libpam調用),將不同的認證機制(比如傳統的UNIX認證方
法、Kerberos等)加入到系統中;PAM核 心庫(libpam)則讀取配置文件,以此為根據將服
務程序和相應的認證方法聯繫起來。
二、PAM支持的四種管理界面:
1、認證管理(authentication management)
主要是接受用戶名和密碼,進而對該用戶的密碼進行認證,並負責設置用戶的一些秘密
信息。
2、帳戶管理(account management)
主要是檢查帳戶是否被允許登錄系統,帳號是否已經過期,帳號的登錄是否有時間段的
限制等等。
3、密碼管理(password management)
主要是用來修改用戶的密碼。
4、會話管理(session management)
主要是提供對會話的管理和記賬(accounting)。
三、PAM的文件:
/usr/lib/libpam.so.* PAM核心庫
/etc/pam.conf或者/etc/pam.d/ PAM配置文件
/usr/lib/security/pam_*.so 可動態加載的PAM service module
對於RedHat,其目錄不是/usr/lib,而是/lib。
四、PAM的配置:
PAM的配置是通過單個配置文件/etc/pam.conf。RedHat還支持另外一種配置方式,即通過配
置目錄/etc/pam.d/,且這種的優先級要高於單 個配置文件的方式。
1、使用配置文件/etc/pam.conf
該文件是由如下的行所組成的:
service-name module-type control-flag module-path arguments
service-name 服務的名字,比如telnet、login、ftp等,服務名字「OTHER」代表所有沒有
在該文件中明確配置的其它服務。
module-type 模塊類型有四種:auth、account、session、password,即對應PAM所支持的
四種管理方式。同一個服務可以調用多個 PAM模塊進行認證,這些模塊構成一個stack。
control-flag 用來告訴PAM庫該如何處理與該服務相關的PAM模塊的成功或失敗情況。它有四
種可能的 值:required,requisite,sufficient,optional。
required 表示本模塊必須返回成功才能通過認證,但是如果該模塊返回失敗的話,失敗
結果也不會立即通知用戶,而是要等到同一stack 中的所有模塊全部執行完畢再將失敗結果
返回給應用程序。可以認為是一個必要條件。
requisite 與required類似,該模塊必須返回成功才能通過認證,但是一旦該模塊返回
失敗,將不再執行同一stack內的任何模塊,而是直 接將控制權返回給應用程序。是一個必
要條件。註:這種只有RedHat支持,Solaris不支持。
sufficient 表明本模塊返回成功已經足以通過身份認證的要求,不必再執行同一stack
內的其它模塊,但是如果本模塊返回失敗的話可以 忽略。可以認為是一個充分條件。
optional表明本模塊是可選的,它的成功與否一般不會對身份認證起關鍵作用,其返回
值一般被忽略。
對於control-flag,從Linux-PAM-0.63版本起,支持一種新的語法,具體可參看Linux
PAM文檔。
module-path 用來指明本模塊對應的程序文件的路徑名,一般採用絕對路徑,如果沒有給出
絕對路徑,默認該文件在目錄/usr/lib/security下 面。
arguments 是用來傳遞給該模塊的參數。一般來說每個模塊的參數都不相同,可以由該模塊
的開發者自己定義,但是也有以下幾個共同 的參數:
debug 該模塊應當用syslog( )將調試信息寫入到系統日誌文件中。
no_warn 表明該模塊不應把警告信息發送給應用程序。
use_first_pass 表明該模塊不能提示用戶輸入密碼,而應使用前一個模塊從用戶那裡
得到的密碼。
try_first_pass 表明該模塊首先應當使用前一個模塊從用戶那裡得到的密碼,如果該
密碼驗證不通過,再提示用戶輸入新的密碼。
use_mapped_pass 該模塊不能提示用戶輸入密碼,而是使用映射過的密碼。
expose_account 允許該模塊顯示用戶的帳號名等信息,一般只能在安全的環境下使用
,因為洩漏用戶名會對安全造成一定程度的威 脅。
2、使用配置目錄/etc/pam.d/(只適用於RedHat Linux)
該目錄下的每個文件的名字對應服務名,例如ftp服務對應文件/etc/pam.d/ftp。如果名為x
xxx的服務所對應的配置文件/etc/pam.d/xxxx不存 在,則該服務將使用默認的配置文件/et
c/pam.d/other。每個文件由如下格式的文本行所構成:
module-type control-flag module-path arguments
每個字段的含義和/etc/pam.conf中的相同。
3、配置的例子
例一:用/etc/pam.conf配置默認的認證方式。
下面的例子將拒絕所有沒有在/etc/pam.conf中明確配置的服務。OTHER代表沒有明確配置的
其它所有服務,pam_deny模塊的作用只是簡 單地拒絕通過認證。
OTHER auth required /usr/lib/security/pam_deny.so
OTHER account required /usr/lib/security/pam_deny.so
OTHER password required /usr/lib/security/pam_deny.so
OTHER session required /usr/lib/security/pam_deny.so
例二:通過/etc/pam.d/rsh文件配置rsh服務的認證方式。
rsh服務認證用戶時,先使用/etc/hosts.equiv和.rhosts文件的認證方式,然後再根據/etc
/nologin文件的存在與否來判斷是否允許該用戶使用 rsh,最後使用password database來認
證用戶。
auth required /lib/security/pam_rhosts_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so
例三:通過/etc/pam.conf配置ftpd的認證方式。
下面是ftpd服務利用PAM模塊進行用戶認證的三個步驟。首先用pam_ftp模塊檢查當前用戶是
否為匿名用戶,如果是匿名用戶,則 sufficient控制標誌表明無需再進行後面的認證步驟,
直接通過認證;否則繼續使用pam_unix_auth模塊來進行標準的unix認證,即用/etc/ passw
d和/etc/shadow進行認證;通過了pam_unix_auth模塊的認證之後,還要繼續用pam_listfil
e模塊來檢查該用戶是否出現在文件/etc/ ftpusers中,如果是則該用戶被deny掉。
ftpd auth sufficient /usr/lib/security/pam_ftp.so
ftpd auth required /usr/lib/security/pam_unix_auth.so use_first_pass
ftpd auth required /usr/lib/security/pam_listfile.so \
onerr=succeed item=user sense=deny file=/etc/ftpuser
s
五、密碼映射(password-mapping)
密碼映射允許用戶在不同的認證機制下使用不同的密碼,其中有一個主密碼(primary pass
word),其它密碼為次密碼(secondary passwords,可能有多個)。主密碼用來對次密碼進
行加密。在主密碼認證通過後,認證模塊利用主密碼將加密過的次密碼(也稱為 mapped pa
ssword)解密,並對次密碼進行認證。
註:如果使用了一次性密碼的機制,就不使用密碼映射。
所有服務模塊必須支持如下4個映射選項(在第四部分已經簡單解釋過):
1、use_first_pass
這個選項指示本模塊不能提示用戶輸入密碼,而是使用已有的密碼,即從第一個向用戶提示
輸入密碼的模塊那裡取得密碼,並對該密碼進 行認證。
2、try_first_pass
這個選項指示本模塊首先嘗試使用已有的密碼,即從第一個向用戶提示輸入密碼的模塊那裡
取得密碼,並對該密碼進行認證。如果密碼認 證失敗,則再提示用戶輸入密碼。
3、use_mapped_pass
這個選項指示本模塊不能向用戶提示輸入密碼,而應使用映射過的密碼,即利用主密碼將加
密過的次密碼解密出來並進行認證。
4、try_mapped_pass
這個選項指示本模塊首先嘗試使用映射過的密碼,即利用主密碼將加密過的次密碼解密出來
並進行認證。如果密碼認證失敗,則再提示用 戶輸入密碼。
密碼映射的例子:
下面是/etc/pam.conf中關於login服務的配置。這裡login共有3種認證機制:Kerberos、UN
IX和RSA認證,兩個required控制標誌表明用戶必 須通過Kerberos認證和UNIX認證才能使用
login服務,optional選項則說明RSA認證是可選的。首先用戶輸入主密碼進行Kerberos認 證
;use_mapped_pass選項指示UNIX認證模塊利用主密碼將用於UNIX認證的次密碼解密出來並對
該次密碼進行認證;try_first_pass選項 指示RSA認證模塊先使用第一個模塊(即Kerberos
模塊)的密碼作為進行認證的密碼,當對該密碼認證失敗時才提示用戶輸入用於RSA認 證的
次密碼。
login auth required pam_kerb_auth.so debug
login auth required pam_unix_auth.so use_mapped_pass
login auth optional pam_rsa_auth.so try_first_pass
六、PAM API
1、框架API:
任何一個支持PAM的服務程序在進行認證時必須以pam_start( )開始進行初始化,最後以pam
_end( )結束以便進行清理工作。
2、認證管理API:
pam_authenticate( )對用戶名/密碼進行認證。
pam_setcred( )用來修改用戶的秘密信息。
3、帳戶管理API:
pam_acct_mgmt( )檢查帳戶本身是否有權限登錄系統、帳戶是否過期、帳戶是否有登錄時間
限制等。
4、密碼管理API:
pam_chauthtok( )修改用戶的密碼。
5、會話管理API:
一個會話以pam_open_session( )開始,最後以pam_close_session( )結束。
6、其它:
pam_get_item( )、pam_set_item( )用來讀寫PAM事務(transaction)的狀態信息。
pam_get_data( )、pam_set_data( )用來取得和設置PAM模塊及會話的相關信息。
pam_putenv( )、pam_getenv( )、pam_getenvlist( )用來讀寫環境變量。
pam_strerror( )返回相關的錯誤信息。
例子程序(摘自Sun的白皮書):
下面的例子使用PAM API寫了一個簡單的login服務程序(註:這不是個完整的程序,所以省
略了對pam_close_session的調用)。
#include
/* 回調函數 */
static int login_conv(int num_msg, struct pam_message **msg, struct pam_response
**response, void *appdata_ptr);
struct pam_conv pam_conv = {login_conv, NULL};
pam_handle_t *pamh; /* 進行認證的PAM句柄 */
void main(int argc, char *argv[], char **renvp)
{
/* 初始化,並提供一個回調函數 */
if ((pam_start("login", user_name, &pam_conv, &pamh)) != PAM_SUCCESS)
login_exit(1);
/* 設置一些參數 */
pam_set_item(pamh, PAM_TTY, ttyn);
pam_set_item(pamh, PAM_RHOST, remote_host);
while (!authenticated && retry < MAX_RETRIES)
{
status = pam_authenticate(pamh, 0); /* 密碼認證管理,檢查用戶輸入
的密碼是否正確 */
authenticated = (status == PAM_SUCCESS);
}
if (status != PAM_SUCCESS)
{
fprintf(stderr,"error: %s\n", pam_strerror(pamh, status)); /* 顯示錯誤原
因 */
login_exit(1);
}
/* 通過了密碼認證之後再調用帳戶管理API,檢查用戶帳號是否已經過期 */
if ((status = pam_acct_mgmt(pamh, 0)) != PAM_SUCCESS)
{
if (status == PAM_AUTHTOK_EXPIRED)
{
status = pam_chauthtok(pamh, 0); /* 過期則要求用戶更改密碼 */
if (status != PAM_SUCCESS)
login_exit(1);
}
}
/* 通過帳戶管理檢查之後則打開會話 */
if (status = pam_open_session(pamh, 0) != PAM_SUCCESS)
login_exit(status);
/* 設置用戶組 */
setgid(pwd->pw_gid);
/*
* Initialize the supplementary group access list before
* pam_setcred because PAM modules might add groups
* during the pam_setcred call
*/
initgroups(user_name, pwd->pw_gid);
status = pam_setcred(pamh, PAM_ESTABLISH_CRED);
if (status != PAM_SUCCESS)
login_exit(status);
/* 設置真實的用戶ID(或者有效的用戶ID)*/
setuid(pwd->pw_uid);
pam_end(pamh, PAM_SUCCESS); /* PAM事務的結束 */
/*
此處可用來實現與login有關的其它內容
*/
}
/* 出錯則清理現場並退出 */
static void login_exit(int exit_code)
{
if (pamh)
pam_end(pamh, PAM_ABORT);
exit(exit_code);
}
/* 這個回調函數被PAM認證模塊調用以便顯示錯誤信息或者或者用來取得用戶輸入,採用圖
形界面的服務程序則應使用圖形界面來取得 用戶輸入或顯示提示信息*/
int login_conv(int num_msg, struct pam_message **msg, struct pam_response **resp
onse, void *appdata_ptr)
{
while (num_msg--)
{
switch (m->msg_style)
{
case PAM_PROMPT_ECHO_OFF:
r->resp = strdup(getpass(m->msg));
break;
case PAM_PROMPT_ECHO_ON:
(void) fputs(m->msg, stdout);
r->resp = malloc(PAM_MAX_RESP_SIZE);
fgets(r->resp, PAM_MAX_RESP_SIZE, stdin);
/* add code here to remove \n from fputs */
break;
case PAM_ERROR_MSG:
(void) fputs(m->msg, stderr);
break;
case PAM_TEXT_INFO:
(void) fputs(m->msg, stdout);
break;
default:
log_error();
break;
}
}
return (PAM_SUCCESS);
}
七、PAM SPI
當服務程序(ftpd、telnetd等)調用PAM API函數pam_xxx( )時,由PAM 框架(libpam)根
據該服務在/etc/pam.conf文件中的配置調用指 定的PAM模塊中對應的SPI函數pam_sm_xxx(
)。如下:
API函數的名字為pam_xxx( ),對應的SPI函數的名字為pam_sm_xxx( ),即每個服務模塊需要
引出相應的函數以供libpam調用。為方便對 照,再列一下。
API 對應的 SPI
帳號管理 pam_acct_mgmt( ) pam_sm_acct_mgmt( )
認證管理 pam_authenticate( ) pam_ sm_authenticate( )
密碼管理 pam_chauthtok( ) pam_ sm_chauthtok( )
會話管理 pam_open_session( ) pam_ sm_open_session( )
會話管理 pam_close_session( ) pam_ sm_close_session( )
認證管理 pam_setcred( ) pam_ sm_setcred( )
八、常用的PAM服務模塊
下面是Linux提供的PAM模塊列表(只是其中一部分):
模塊文件 模塊功能描述 相關配置文件
pam_access 提供logdaemon風格的登錄控制 /etc/security/access.conf
pam_chroot 提供類似chroot命令的功能
pam_cracklib 對密碼的強度進行一定的檢查 庫文件libcrack和字典文件
/usr/lib/cracklib_dict
pam_deny 總是無條件地使認證失敗
pam_env 設置或取消環境變量 /etc/security/pam_env.conf
pam_filter 對輸入輸出流進行過濾 filters
pam_ftp.so 對匿名ftp用戶進行認證
pam_group 當用戶在指定的終端上請求指定的 /etc/security/group.conf
服務時賦予該用戶相應的組權限
pam_issue 在提示用戶輸入用戶名之前顯示 /etc/issue
/etc/issue文件的內容
pam_krb4 對用戶密碼進行Kerberos認證 相應的Kerberos庫文件
pam_lastlog 在用戶登錄成功後顯示關於 /var/log/lastlog
用戶上次登錄的信息,並維護
/var/log/lastlog文件。
pam_limits 限制用戶會話所能使用的系統資源 /etc/security/limits.conf
pam_listfile 根據指定的某個文件決定是否 例如/etc/ftpusers
允許或禁止提供服務
pam_mail 檢查用戶的郵箱中是否有新郵件 /var/spool/mail/xxxx
pam_mkhomedir 為用戶建立主目錄 /etc/skel/
pam_motd 顯示/etc/motd文件的內容 /etc/motd
pam_nologin 根據/etc/nologin文件的存在與否 /etc/nologin
來決定用戶認證是否成功
pam_permit 總是無條件地使認證成功
pam_pwdb 作為pam_unix_xxxx模塊的一個替代。/etc/pwdb.conf
使用Password Database通用接口
進行認證。
pam_radius 提供遠程身份驗證撥入用戶服務
(RADIUS)的認證
pam_rhosts_auth 利用文件~/.rhosts和 /etc/hosts.equiv和~/.rhosts
/etc/hosts.equiv對用戶進行認證。
pam_rootok 檢查用戶是否為超級用戶,如果
是超級用戶則無條件地通過認證。
pam_securetty 提供標準的Unix securetty檢查 /etc/securetty
pam_time 提供基於時間的控制,比如限制 /etc/security/time.conf
用戶只能在某個時間段內才能登錄
pam_unix 提供標準的Unix認證 /etc/passwd和 /etc/shadow
pam_userdb 利用Berkeley DB數據庫來檢查 Berkeley DB
用戶/密碼
pam_warn 利用syslog( )記錄一條告警信息
pam_wheel 只允許wheel組的用戶有超級用戶
的存取權限
參考資料:
1、DCE/OSF-RFC 86.0
2、Linux-PAM documentation & source code
3、Sun Solaris PAM documentation
--
2008年4月14日 星期一
| [+/-] |
[SAMBA]Ubuntu 7.10實作SAMBA |
簡單介紹一下什麼是SAMBA Server
大家都知道xp的網路芳鄰(CIFS)就是讓區網內的所有電腦可共享檔案印表機
CIFS=Common Internet File System
但是網芳只能讓Windows機器溝通瞭解這樣就可以
在來還有一種服務是NFS(Network File System)
這是能讓所有Unix-Like機器溝通且用掛載的方式來共享資料
那能不能在linux上找到xp網芳或者在xp上找到linux所分享出來的檔案
如果對方是Vista可能會有些問題,因為:
Vista採用了SMB協議的新版本SMB2,
這可能會給那些連接到非微軟網路例如Linux的Samba伺服器上的電腦產生問題。
Windows 的網路芳鄰其實是使用 SMB/CIFS 通訊協定。
SMB (Server Message Block) 通訊協定最早是在 1980 年代由 IBM 所發展出來,這個通訊協定可以讓不同的電腦共享檔案、印表機、及其它裝置。SMB 最早是運作在 NetBIOS 的網路協上,一開始 IBM 設計了 NetBIOS 只是為了讓網路中少數的電腦可以彼此互相溝通。所以 NetBIOS 的功能比較陽春,在使用上有一些限制。例如,只能使用在區域網路中、跨不過路由器。後來又出現了 NetBEUI (NetBIOS Extend User Interface),也是 IBM 針對 NetBIOS 的改良版。後來又有 NetBIOS over TCP/IP,使得 SMB 協定也可以跑在 TCP/IP 上,並可以經由網際網路存取。在使用 NetBIOS 在存取遠端電腦時,我們可以使用電腦名稱如「\\alex-pc」來存取,而 TCP/IP 只能使用「\\192.168.0.1」這種方式來存取。所以 NetBIOS 也不是一無是處,它提供了比較簡單而易懂的方式。
Microsoft 在 1996 年為了市場考量,將 SMB 改名為 CIFS (Common Internet File System),名稱看起來比較容易瞭解,顧名思義就是可以在網際網路上使用的檔案系統。所以我們其實不應該稱呼網路上的芳鄰為「網路芳鄰」,而是 SMB/CIFS 通訊協定,就好像我們稱呼 HTTP、FTP 一樣。在 Windows 的世界裡,人們可以使用 SMB/CIFS 來共享檔案。而在 UNIX 的世界裡使用的是 NFS (Network File System);Mac 的世界中則是使用 AppleTalk。我們可以看到不同的作業系統環境中,都有自己的一套方法,不過我們還是可以經由安裝軟體來達成不同平台共享檔案的功能。
而NFS 是架構在 RPC Server 上面
且網芳有連限限制
Windows 2000 pro-------------->5人
Windows 2000 server---------->不限
Windows 2000 AD server------>不限
Windows XP home ------------->未知
Windows XP pro ---------------->10人
有效且被歸類為存活的連線數最高10人 以xpp來說
大約是這樣
行!就是SAMBA 下面來介紹一下摟!
SAMBA的主要功能:
分享檔案與印表機服務;
可以提供使用者登入 SAMBA 主機時的身份認證,以提供不同身份者的個別資料;
可以進行 Windows 網路上的主機名稱解析 (NetBIOS name)
可以進行裝置的分享 (例如 Zip, CDROM...)
接下來要安裝了!
Samba 目前有二個主要的版本:2.2.12 及 3.0.x。2.2.12 已經發展很久了,目前已進入停滯狀態。和 3.0 比較起來,速度稍快、功能較簡單。最大的不同在於 Samba 2.2.12 只支援 code page,而 Samab 3.0 支援 Unicode。Unicode 的支援可以讓我們同時在一個目錄中存放中文、日文、簡體中文等多國語的檔名。所以,這邊建議您安裝 Samab 3.0以上。
最新版是Samab 3.028a或許你可用更簡單的方式安裝:apt-get install samba
以Debian的安裝會出現以下套件需更新或安裝
以下是簡略說明
samba-common (主要設定檔 (smb.conf,主要設定檔 (smb.conf))
smbclient (掛載 SAMBA 檔案格式的執行檔 smbmount)
smbfs (SBM檔案系統公用程式)
smbldap-tools
samba (主要 daemon 檔案 (smbd 及 nmbd))
啟動,停用,重新啟動,重讀取,指令:/etc/init.d/samba start|stop|restart|reload
Red Hat 的語系設定是看/etc/sysconfig/i18n
Debian 則在"/etc/environment"
這點要注意一下~
這邊先以第一種peer/peer (Workgroup model)來說明
登入需要密碼
密碼檔放置 /etc/samba/smbpasswd (密碼要加密)
使用者有自己家目錄並建立群組user可進入/home/public
users 這個群組的所有人可具有寫入的權限
[root@ubuntu~]# vim /etc/samba/smb.conf
[global]
workgroup = MSHOME
netbios name = radius_nat
server string = This is nat samba server
unix charset = utf8
display charset = utf8
dos charset = cp950
log file = /var/log/samba/log.%m
(%m:代表 Client 端的 NetBIOS 主機名稱)
max log size = 1000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
template shell = /bin/false
winbind use default domain = no
# 與密碼有關的設定項目,包括密碼檔案所在與加密與否喔!
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
# 與 NetBIOS name 名稱解析有關的設定
name resolve order = lmhosts bcast host
[homes]
comment = Home directories
browseable = no (不會開放給其他人瀏覽)
writable = yes
valid users = %S
create mode = 0664 (mask也可)
directory mode = 0775
※ umask=002
接下來要新增登入帳號 因為上面security = user所以
需要帳號登入~新增帳號為/etc/passwd裡的帳號為主
smbpasswd -a radius
New SMB password: 這個密碼不需與 /etc/shadow 相同
Retype new SMB password:
Added user dmtsai. 有秀出這個才是成功唷~
cat /etc/samba/smbpasswd 查看有沒有新增成功
radius:501:1B0F61E20F8F2D11AAD3B435B51404EE:F7EDDB3F55CC5DB1FE00D7F755028491:
[U ]:LCT-4590969D:
●因為上面[gogle]裡有
smb passwd file = /etc/samba/smbpasswd
這一行所以才能新增~要自己建立唷
touch /etc/samba/smbpasswd
接下來就是測試了
testparm 先確認smb.conf 語法是否正常
在來
/etc/init.d/samba reload or restart
smbclient -L //127.0.0.1
passwd: 直接Enter 就可
Anonymous login successful 匿名登入
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.10-1.4E.9]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (This is vbird's samba server)
cdrom Disk Samba server's CD-ROM
temp_bak Disk my bak dir
在用剛剛建立的帳號登入
smbclient -L //127.0.0.1 -U dmtsai
passwd: 輸入剛輸入的
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.10-1.4E.9]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (This is vbird's samba server)
cdrom Disk Samba server's CD-ROM
temp_bak Disk my bak dir
radius Disk Home directories有所差別多這一個
設定好就是如何登入了
先在Client Linux端建立mkdir /media/samba
smbmount //223.125.2.3/radius /media/samba -o username=radius,passwd=1111
這樣就掛載成功了!
到cd /media/samba
df .
//223.125.2.3/radius 20164444 3088222 17111128 13% /media/samba
------------------------
第二種進階PDC設定方式:
其他延伸閱讀請點"繼續閱讀"
關於語系問題可參考這裡
鳥哥samba介紹
實作windows xp 加入samba網域
2008年4月8日 星期二
| [+/-] |
[linux]開機自動載打開NUM LOCK |
讓系統開機後自動打開 NumLock,請修改 /etc/console-tools/config 如下:
# Turn on numlock by default
LEDS=+num
完成!
但上面似乎對於x-server不適用
可改用
sudo apt-get install numlockx
然後編輯/etc/X11/gdm/Init/Default這個文件(注意備份),在最後一行exit 0前面添加:
if [ -x /usr/bin/numlockx ]; then
/usr/bin/numlockx on
fi
[xp]進桌面自動開啟Num lock 鍵
| [+/-] |
[VGA]命令列模式的解析度該如何調整 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 640x480 800x600 1024x768 1280x1024
----+-------------------------------------
256 | 0x301 0x303 0x305 0x307
32k | 0x310 0x313 0x316 0x319
64k | 0x311 0x314 0x317 0x31A
16M | 0x312 0x315 0x318 0x31B
彩度\解析度 640x480 800x600 1024x768 1280x1024 bit
256 769 771 773 775 8 bit
32768 784 787 790 793 15 bit
65536 785 788 791 794 16 bit
16.8M 786 789 792 795 32 bit
螢幕解析度 (X) | 320 640 640 800 800 896 1024 1024 1152 1552 1280 1440 1600
螢幕解析度 (Y) | 200 400 480 500 600 672 640 768 720 864 1024 900 1200
---------------+-----------------------------------------------------------------
4 bits | 770 772 774
8 bits | 768 769 879 771 815 874 773 869 353 775 864 796
15 bits | 781 801 784 880 787 816 875 790 870 354 793 865 797
16 bits (5:6:5)| 782 802 785 881 788 817 876 791 871 355 794 866 798
24 bits (8:8:8)| 783 803 786 882 789 818 877 792 872 795 867 799
32 bits (8:8:8)| 804 809 883 814 819 878 824 873 356 829 868 834
一般而言,Debian GNU/Linux 開完機後的螢幕解析度為 640x480。但現在的螢幕尺寸越做越大,若在 Console 下還是使用著 640x480 的解析度似乎並不合宜。
我們可以藉由啟用 FrameBuffer 來改變 Console 的解析度。主要的方法有二:在開機時啟用 vesafb,或在開完機後載入符合您的顯示卡的專用 framebuffer 模組。
vesafb
若要啟用 vesafb,請在開機時傳遞 vga 參數給 Kernel,這個 vga 參數將會同時指定 Console 的解析度。以 GRUB 為例,請修改 /boot/grub/menu.lst 如下:
要求 Linux 在開機時載入 vesafb 以啟用 FrameBuffer,並將螢幕解析度設定為 800x600x24bit
注意, 較舊版的 lilo 沒有支援 16 進制的 0x317 的數值, 請改用 10 進制 791
有時候有些事情一定要在純終端機下工作,
但是有一些Distribution預設沒有開啟純終端機高解析度的功能,
所以螢幕上能顯示的資訊很少,常常輸入一個ls,輸出訊息就超過螢幕的範圍。
往往要用more或Shift+Page Up/Down來看,不過還是有點不方便。
以下就是如何啟動純終端機高解析度的方法。
首先假設你已經會編譯一個可以正常啟動的核心。
以下這個指令是把Linux核心的原始碼解壓縮到/usr/src。
# tar jxvf linux-x.x.x.tar.bz2 -C /usr/src
make menuconfig的時候請把以下兩個功能編進核心裡。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-> Device Drivers
-> Graphics support
[*]VESA VGA graphics support
->Console display driver support
<*> Framebuffer Console support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
再來make、安裝好新核心請參考以下表格,選擇一個你想要的解析度與色彩深度。
資料來源:/usr/src/linux-x.x.x/Documentation/fb/vesafb.txt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
比如說1024x768 64k的代碼是0x317。
然候把『vga=0x317』寫到/boot/grub/menu.lst中,例如:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
title Debian GNU/Linux
root (hd0,5)
kernel /boot/vmlinuz-2.6.16.20 root=/dev/hdc6 vga=0x317
initrd /boot/initrd.img-2.6.16.20
savedefault
boot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
重新開機,用新的核心啟動試試看。
如果開機候純終端機顯示還是低的解析度(也就是說失敗了),
請把解析度與色彩深度的規格調低一點再試試看。
例如:1024x768 16M(vga=0x318)失敗了,改用1024x768 64k(vga=0x317)看看。
fyi
GNU/Linux 在 Console 下的一些小技巧
如何調整Command Line 模式(文字命令列)的解析度
| [+/-] |
[linux]關於iconv的轉碼功能介紹 |
在Linuxl底下有個好用的轉編碼的小工具 - iconv
不過,這個iconv只能拿來轉單一個檔案,並不能直接指定一個資料夾下去遞迴轉換。所有當有大量的檔案需要轉編碼時,就變得有點麻煩了。還好Linux強大的shell指令,可以幫忙解決這個問題,而解決的曙光就來自於find!
find -type f -exec iconv --verbose -f BIG-5 -t UTF-8 {} -o {}.result \; \
-exec mv {} {}.bak \; \
-exec mv {}.result {} \;
以上這段指令分三個階段執行,
將目前所在的資料夾的檔案找出,丟給iconv執行轉碼,先將結果暫存至{原檔名}.result
將原本的檔案,改名為{原檔名}.bak
再將剛暫存的{原檔名}.result,改名稱{原檔名}
iconv的簡介
-l 列出所有支援的編碼格式
-f 要轉換的來源編碼
-t 要轉換的結果編碼
-o 輸出結果的檔案
--verbose 列出處理的檔案名稱
find的簡介
-type [option] 想找出的檔案類型
f : 正規的檔案
d : 資料夾
l :象徵連結
b : 區塊裝置
p :具名管線
c :字元裝置
s :Socket
-exec [command] 執行指定的command
所有在exec之後的參數,都會被當成是該command的參數,直到 '\;' 符號出現為止
正在處理的檔案名稱,以'{}'取代
-print 印出正在處理的檔名
轉貼於
http://falldog7.blogspot.com/2007/11/linux-iconv.html
2008年4月5日 星期六
| [+/-] |
[Linux]Device is busy 解決方法 |
在Linux下umount掛載的硬碟或者隨身碟的時候,經常會出現“Device is busy”的提示,哦~真讓人惱火,在Windows下的那個無法卸載移動設備的問題,竟然也竄到了Linux下……
其實,錯誤不在WIndows也不在Linux,無法卸載移動設備的原因,是因為系統中還有程序在霸佔著移動設備上的文件,如果冒然強制卸載,可能會導致數據遺失和設備損壞,“Device is busy”是一種保護措施。
既然知道是有程序霸佔,找出這個程序再處理一下就好了。 fuser這個小程序可以派上用場,基本上每個發行版都會帶有fuser這個工具。
fuser可以顯示出當前哪個程序在使用磁盤上的某個文件、掛載點、甚至網路端口,並給出程序進程的詳細訊息。
假設無法卸載的設備為/media/USB,運行下列命令即可:
$ fuser -m -v /media/USB/
用戶進程號權限命令
/media/BAK/: galeki 335 ..c.. gqview
-m參數顯示所有使用指定文件系統的進程,後面可以跟掛載點,或是dev設備( Thanks lisir :),-v參數給出詳細的輸出,可以看出,原來是gqview這個程序還在霸占著移動設備,fuser還給出了程序的進程號,知道了進程號,你就可以隨便怎麼處置這個程序了。
另外你也可以添加一個-k參數:
fuser -m -k /media/USB/
這招自動把霸佔著/media/USB/的程序殺死。如果你不是很明確是否要殺死所有霸佔設備的程序,你還可以加一個-i參數,這樣每殺死一個程序前,都會詢問:
$ fuser -m -v -i -k /media/BAK/
用戶進程號權限命令
/media/BAK/: galeki 371 ..c.. gqview
殺死進程371 ? (y/N)
很順利的解決了“Device is busy”的問題~
2008年4月2日 星期三
| [+/-] |
[LFS]LFS(Linux From Scratch) 系統簡介 |
◎ 前言:
什麼是 LFS,簡單的說就是 DIY 自行打造一個 Linux 系統,這是由
Gerard Beekmans 所領導的 LFS Project。但這不是從無開始的,而
是借由您原已安裝的系統來進行打造。如果您想試一試 distribution
是怎麼製造出來的,不妨來玩玩 LFS。
◎ 網站:
http://www.linuxfromscratch.org
http://www.linuxfromscratch.org/intro/
請先下載 LSF-BOOK 詳細閱讀後,step by step 就可以製造屬於您自
已的 distribution 了!:)
注意!LFS-BOOK 才是完整的版本,LFS-HOWTO 則是節錄的,所以請參
考 LFS-BOOK,目前最新的版本是 2.4.4,而 LFS system 的版本也是
以 2.4.4 為名。
* ftp://download.linuxfromscratch.org/lfs-book/
◎ 製作原理:
1. 在原系統先製一個 /mnt/lfs,準備一個空的磁區來使用。
2. mount 上 /mnt/lfs,然後在原系統編譯需要用到的工具程式,
安裝至 /mnt/lfs (可事先設好 $LFS 變數,編譯時指定此變數
即可)。
3. 第一波的必要程式都是在原系統以 static 的方式編譯的,以後
再從 LFS 系統用新的 gcc 及 glibc 重編譯過。
4. 使 LFS 系統可以開機,這樣差不多就大功告成了,接下來的就
是重編譯一些原在舊系統編譯的 static 程式,改為 dynamic,
並補足系統上的應用軟體。
* LFS 系統上的程式也可在舊系統 chroot 至 $LFS 中編譯,使
用的是新的 gcc 及 glibc。粉好玩的,大家來玩玩看!:-)
5. 您不必放棄原來使用的系統,先以 LFS 當白老鼠,等成熟後再
當做您的主系統。
◎ 有問題時怎麼辦?
在 LFS 網站上有很多 mailing list 可以訂閱,什麼大大小小的疑
難雜症都可以發問,list 上的同好會給您詳細解答,但用英文就是
了,沒關係,只要對方懂您的意思就可以了,文法不重要!我的破
英文可以通,您們的應該也可以。:-)
可先下載 archives 中打包好的舊信來參考,裡面的東東比什麼精
華區都有用,大家會碰到的問題大概都逃不過這些舊信的範圍,新
的東東馬上就會有人測試,並提出問題及心得。
http://archive.linuxfromscratch.org/mail-archives
ftp://download.linuxfromscratch.org/mail-archives
目前開放的 mailin list 有(討論相當活躍):
* lfs-discuss
* lfs-apps
* lfs-announce
* lfs-security
* alfs-discuss
* alfs-docs
* alfs-ipc
* alfs-profile
* 字首為 a 的代表 AutomatedLFS,主要是打造一個可以自動安裝
、移除的 LFS 系統。目前還不成熟,正在努力中 ...
台灣有人有興趣的話,也可成立個 CLFS 的 mailing list 來玩玩。:-)
◎ 功用
1. 如果您想學好 Linux 的整體架構組織,請試試 LFS。
2. 這是學習 Linux 最好的途徑,都是實戰中學來的!:)
3. 可以學習許多編譯、修改程式的技巧。
4. 經過一次的 LFS 洗禮,您大概也就會知道各家 distribution
的優劣在哪裡,縱使不用 LFS 系統,您也可以有能力選擇一個
適合的 distro 了!
5. 一般的 disro 是為大家製作的,有許多東東您並不需要,LFS
系統則是依需求量身訂做的。
6. 不必怕有人在編譯程式時動了手腳。因為所有程式都是您自己從
source 自行建立的,這些 source 可從 LFS 網站上下載,也可
自行到原網頁下載。
* http://www.linuxfromscratch.org/download/packages.php
7. 完全符合 Free、Open 的精神。:-)
轉貼美麗之島
2008年3月26日 星期三
| [+/-] |
[MAC]如何在Debian修改網路卡的順序(ubuntu7.10) |
Debian 4.0 和 Ubuntu 7.10 都是由 udev 的 persistent-net.rules 規則決定網路介面的名稱。規則所在的檔案在兩 GNU/Linux 有分別,但設定方法一樣。 Debian 4.0 的 persistent-net.rules 規則在 /etc/udev/rules.d/z25_persistent-net.rules ,而 Ubunut 7.10 中則在 /etc/udev/rules.d/70-persistent-net.rules:
vim /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.
# Firewire device 000ac606203a402e (ohci1394)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="01:02:a4:95:02:44:e8:63", NAME="eth0"
# PCI device 0x8086:0x119b (e1000)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="10:27:d3:32:53:58", NAME="eth1"
在上面的address 與name修改
記的要sudo pppoeconf 重設定一次pppoe 如果
不這麼做請確認/etc/network/interfaces裡的設定是否有跑掉
及介面卡設定是否正確!
ps:其他延申知識
查看網路線是接在那一張網卡
能用ip link show
來觀看三張網卡那一張有接網路線
前面有秀出NO-CARRIER表示沒有接網路線
或者用ifconfig eth1 有秀出RUNNING 表示是有接上網路線的!
或用ifconfig eth0 down(up)時看一下主機後面網卡燈號
如果有熄掉1-2秒表示就是這張!
找出那一張eth是什麼晶片dmesg |grep eth 可查出端倪
lspci |grep Eth 也可以!
其版本可參考以下幾篇文章
在 Debian 中如果更改網卡的順序呢?
修正網路介面名稱
Udev Over view
Linux操作系統下乙太網卡的安裝及配置
| [+/-] |
[linux] udev over View !! |
什麼是 hotplug ﹝熱插拔﹞?傳統的 PCI 、 ISA ,都需要在電腦處於冷機的時候,才能插上裝置,因為這些規格都不具備 hotplug 的能力。hotplug 意味著不必讓電腦關機、切斷電源後就能插上你的裝置。我們常見的隨身碟就是最好的例子。
常常我們文件完後想要儲存帶走,就會拿起隨身碟插入 USB 連接孔,一般狀況下,系統馬上就能偵測到新的儲存裝置,並做新增配置,讓你可以立刻將資料存放於隨身碟裡。用完後,只要將隨身碟拔起,就可將資料帶走。這種在電腦熱機狀態就增減硬體的機制就是 hotplug。
在 Linux 裡,過去大家都是用 hotplug 套件包來達成動態增減裝置的功能,還必須設定 /proc/sys/kernel/hotplug ,讓核心在偵測到有新的 hotplug 裝置時,會通知 hotplug 套件包去做相關配置。
稍微有注意的人都知道,Linux 2.6 版核心後,全面採用 udev 取代過去的 devfs ,裝置檔現在都改用 udev 自動產生。原因是 udev 在設計理念上比過去的 devfs 擁有更大的格局,他不只是一個設備檔產生器,而是一個核心訊息的監聽器,它總在隨時監聽核心是否有新增裝置或是載入新的模組,並做出相對應的處理。在 udev 發展的過渡時期,由於對新裝置的對應處理機制並沒有設計的很完善,暫時只能充當設備檔產生器,而在 hotplug 機制的部份,設計了一個小程式 udevsend 與過去的 hotplug 套件包做整合。
udev 發展到今天,已逐漸成熟,hotplug 機制已不必過度仰賴舊的 hotplug 套件包,udevsend 這支程式已經在新版的 udev 中拿掉了,關於這部份可以在 Fedora Core 5 的系統中看到實作。
fyi
2008年3月25日 星期二
| [+/-] |
[SSH]對root及user做安全性設定(ssh) |
預設的SSH安裝好是不限制root登入的
所以如要限定root遠端登入!有兩種方式
1.透過修改sshd_config來達成目的
vim /etc/ssh/sshd_config
PermitRootLogin no <預設是yes 建議改成no
2.透過修改PAM模組驗證來達成限制ssh的遠端服務roo限制(
vim /etc/pam.d/ssh
以ubuntu 7.10預設是沒使此模組限制故我們新增此群組
auth required pam_securetty.so
驗證的類別
auth:檢驗使用者的身份驗證
驗證的控制標準
required:模組的驗證必須要成功,否則就會回傳一個 failure 的訊息
此pam_securetty 功用就是預防不安全登入環境且是針對root
此模組啟用會讀取/etc/securetty
(此方式也適用telnet,如果telnet要開放root就把
/etc/pam.d/login裡的pam_securetty.so 移除
或rm /etc/securetty )
以下介紹一個針對user的限制登入的方法
touch /etc/nologin
這樣所有使用者都無法登入除了root以外...
ps. 這題LPI-117-102有考到這題唷!
| [+/-] |
[iptables]如何修改iptables讓對方Ping不到本地主機 |
今天來講一下如何讓對方ping不到我們自己架的主機
不管在那一台電腦主機下'ping'指令
都會發出一個ICMP類型為8(echo-request)的封包
意思就像信號彈一樣!當對方收到會回應一個類型為0(echo-replay)封包給我們
成功就會開始跑
64 bytes from 168.95.1.1: icmp_seq=1 ttl=249 time=34.1ms
的訊息!
所以我們只要用iptables將來自ICMP類型為8的封包給擋下來丟掉
嘿嘿!
對方就無法ping成功!
就會出現REquest timed out.等字樣 但不代表對方網路不通唷!
通常我們建立防火牆規則不會一條一條建立而是建立一個sheel Script
放在/etc/rc.local讓他開機自動載入
(rc.local通常是runlevel最後一個載入的程序稿S99rc.local)
vim nat.ip
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
ipatbles -P OUTPUT ACCEPT /開頭先開放filter表格三個鍵的封包都接受~之後在限制/
iptables -t filter -F /清除filter表格裡的所有rule/
iptables -t nat -F /清除nat表格裡的所有rule/
iptables -t filter -X /移除filter表格裡的所有自訂鏈/
iptables -t nat -X /移除nat表格裡的所有自訂鏈/
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
(-p指令封包為icmp type為echo-request) 封包是類型8就丟棄
一開始要清除在設定rule是有考量的!如果不刪除每執行一次nat.ip
就會一直加上去!所以開頭都會建議要先刪除在新增 ~比較好唷!
iptables很有效率!修改完馬上./nat.ip 馬上就可以測試!
| [+/-] |
[Backup]備份工具運用時機 |
標準的 UNIX 系統皆有提供基本的備份工具, 這些工具在某種程
度上可說是無趣的, 它們的功能並不特別花俏且有許多限制,有些
至今仍有小錯誤(如, 某些 UNIX 版本終於將 dump 中”倒帶
tape-rewinding ”的錯誤加以更正)。
然而這些基本備份工具中, 仍有些功能尚未被商業備份廠家吸收
採用,因此這些功能會長久存在且不用額外花錢購買。 它們在任何
平台環境的運作方式大致相同,如有差異也只有少許的不一樣。 無
論您是否剛接觸備份世界, 或是經驗豐富的系統管理者,都必須熟
悉這些工具。
Dump, cpio,tar與dd之運用時機
不同備份工具之間有不同的差異與優缺點。 Dump 及 restore 通
常是最好的選擇,其次是 cpio, 但它比 tar 來得不親和些; tar
則比 dump 或 cpio 更容易使用且更具攜帶性。 如果希望使用 tar
或 cpio 備份 raw devices 或執行遠端備份,那麼 dd 可以是您的
另一項選擇。
dump及restore工具
如果您正在負責備份至少一個以上的 UNIX 伺服器, 但經濟上無
法負擔商用備份產品, 也不信任免費的公共軟體來備份重要資料,
那麼最好您的 UNIX 版本有提供 dump 及 restore 指令,它們在備
份及回復整個系統上非常具有彈性與變化。 dump 及 restore 是相
當複雜的指令, 附有一簡單的介面及數個基本選項,這些選項在大
部份的 UNIX 系統是相同的。 有些 UNIX 版本改變了 dump 的名字
或部份特性,但這些改變都是非常小的。dump 也出現在仿 UNIX 系
統中,如:Linux 及 Network Appliance 系統。在未來您可能並不
打算使用 dump 來備份資料, 但是您卻會有機會從某處的 dump 資
料卷中讀取內容, 屆時,本文將帶給您相當的幫助。
cpio備份工具
如果沒有 dump 指令或者 dump 版本不符所需, 則 cpio 是您的
下一個好選擇。cpio 比其它備份工具存在的時間久,且具有一些其
它工具所缺乏的重要特性。 但首先需說明的是,有些功能 dump 有
提供而 cpio 則無者,如下:
‧無需使用touch或find檔案,即可執行變動備份(incremental backup
);
‧備份完後不改變資料的atime及ctime;
‧以互動方式執行資料回復,如restore的選項-i。
cpio 是一個非常有用的備份工具,它最大的不同處,是可以備份
從標準輸入( stdin )而來的的檔案。 目前有些新版的 tar 支援
從標準輸入來的檔案備份,但大部份尚未有此功能。
為什麼cpio較不常被使用?
如果 cpio 如此好用,為何 tar 卻比較風行?最可能的理由是同
樣的功能,tar 比 cpio 較簡單易用(也較標準)。 例如:每個版
本的 tar 都支援 tar cf device 及 tar xf device, 然而 cpio
有時支援 I 及 O;有的版本則無。如果將 cpio 每種版本的選項累
計,則有近 40 個選項, 甚至有些使用同一字母的參數,在不同版
本的 Unix 有不同的意義。 但您只要使用在大部份平台皆標準的選
項,那麼,cpio 幾乎與 tar 一般簡單好用。
tar備份工具
如果需要定期備份整個作業系統,dump 可能是最好的選擇。其次
是 cpio, 因為它可與 find 搭配執行變動備份( incremental
backup )。如果您像大部份的人一般,只為了將資料做一次完整的
備份,那麼就不需要定期或變動備份等功能。 例如,您可能希望快
速地備份使用者 /home 目錄。您可能想要刪除使用者的一大群目錄
與檔案, 但唯一可讓使用者接受的備份方式,是將其資料全部寫入
磁帶或光碟內儲存並交給他。 因此您不在乎 atime,不需定期做變
動備份, 只希望將一堆資料放到備份媒體上,而且也希望他人可以
很容易地將資料從備份中取出, 在這種情況下,tar 會是個最佳選
擇。
有一些功能是 cpio 有而大部份的 tar 則無的( GNU tar 沒有
這些限制),例如:
‧可以備份來自stdin的檔案;
‧當備份完成時重新設定檔案的atime,儘管這會改變其ctime。
雖然 tar 的歷史並不比 cpio 來得久,但它卻得到較大的接受度
,這也正是它的特點之一。幾乎每個人都知道如何讀 tar 檔,即使
不會也很容易學。 有些程式如 WinZip, 甚至可以自動地解開一個
tar 檔或壓縮過的 tar 檔以讀取其內容( WinZip 卻無法開啟
cpio 檔)。tar 也較 dump 或 cpio 在 Unix 平台間具可攜性。
dd工具
大部份的人不常使用 dd 來作備份, 它是一個相當低階的指令,
可將資訊內涵的每個位元( bit )原封不動地從一個地方搬到另一
個地方, 它不管也無需知道備份資料的結構。 因此不同於 dump,
tar, 及 cpio, 它不可以拷貝一群檔案至儲存媒體, 只可以拷貝一
個檔案或一檔案的部份或 partition 或部份 partition,甚至可以
在資料修改中途將資料從標準輸入( stdin )拷貝至標準輸出(
stdout )。即使 dd 可以拷貝單一檔案,但其對檔名或檔案內容是
一無所知的, 它純粹只是從一個地方搬運檔案的位元內容至另一個
地方而已。
這種方式看似相當簡單, 相對地它也相當有彈性,可以在不考慮
資料格式之下執行拷貝動作, 因此它可在兩個不同平台間作資料轉
換。 例如:從 EBCDIC 到 ASCII,或 Oracle 允許資料以檔案系統
下的檔案形式存在, 亦可以直接放在原始磁碟區塊上,然而備份程
式無法預測資料庫管理師會以何種方式存放資料, 故採用富彈性的
dd 作自動備份,甚至備份結果是混合此兩種資料形式也無妨,亦即
有些在檔案系統中,有些則在原始磁碟上。 如此,資料管理師可依
資料應用特性決定其存放形式,可見 dd 所提供的彈性助益甚大。
其它備份工具
尚有其它較不為人知或只出現在某些平台的備份工具, 其中較常
使用的包括:
‧pax:pax是Portable Archive eXchange的縮寫,可產生一可攜式的備
份, 此備份格式符合 IEEE Std.1003.1-1988 的
Archive/Interchange File Format。 pax 亦可讀寫一些其它的
檔案格式如 tar 或 cpio。 正如 Unix 世界的許多現象般,pax
也有一群擁護者認為它是備份工具中最好的選擇。
‧fbackup:fbackup只有HP-UX提供且屬於HP的System Administration
Menu ( SAM )的工具之一,使用 fbackup 作的備份, 只
能在另一個 HP-UX 主機上使用 frecover 讀取之。 僅管
fbackup 比傳統的 tar 及 cpio 有較多的功能, 但它缺乏
可攜性的缺點是非常使人詬病的。 即使您無法用 SAM 來操
作 dump, cpio 或 tar,但這三個指令的可攜帶特性,絕對
值得您花較多的心力去使用它們。
使用dump備份資料
對許多系統環境而言,dump 是一確保備份品質的好工具。為使用
dump 及 restore 作定期系統備份,必須先了解下面事項:
‧如何使用dump備份檔案系統;
‧如何備份至儲存媒體上;
‧如何從一dump檔讀取其內的資料目錄;
‧如何處理dump檔並從dump檔中將資料回復。
dump指令的語法
先從dump的基本指令開始:
# dump levelunbdsf blkg-factor density size device-name
file_system
下面是執行此指令的例子:
.對/home做一完整備份至本地磁帶機/dev/rmt/0cbn:
# dump 0unbdsf 126 141000 11500 /dev/rmt/0cbn /home
‧對/home做一完整備份至光碟機/backup/home.dump:
# dump 0unbdsf 126 141000 11500 /backup/home.dump /home
‧對/home做一完整備份至遠端主機hsm的磁帶機/dev/rmt/0cbn:
# (r)dump 0unbdsf 126 141000 11500 hsm:/dev/rmt/0cbn /home
上述的指令包含不需要參數的三個選項( 0,u, 及 n ),及需要
參數的四個選項( b,d,s 及 f )。
dump 指令的第一個參數是一串選項,然後每個選項對應的參數依
照選項的順序依次放置於指令行,參見圖一。
dump指令的選項
在大部分的平台上,dump有七個主要的選項:
0 -9:標示dump應執行的備份階層。
b:標示dump應使用的區塊數目因子。
u:告訴dump須更新dumpdates檔案。
n:告訴dump,當完成dump動作時通知操作者及與其同一組(group)的
人。
D 及 s:告訴dump備份的資料量多大,dump利用這些數字預估需要多少
”磁帶”。
f:告訴dump使用何種儲存設備。
W, w:此選項幾乎很少用到,它告訴dump執行假備份以判斷有那些檔案
系統必須備份。
如果欲使用 dump 定期執行系統備份,那麼, 您應會用到上述大
部份的選項。 這些選項有預設值,如無特別要求,可不用特別標明
dump 選項及其參數,例如:預設的備份階層通常是 9。預設值的問
題是它們會因不同的作業系統而不同, 甚至同一個作業系統也會因
儲存媒體的不同而有差異。 最好的方式是在所有的 dump 備份都標
明相同的選項,有助於資料回復的容易度。
使用resotore工具回復資料
您必須相當熟悉以不同的方式使用 restore 指令,從 dump 產生
的備份中取得資料。
含備份資料的儲存媒體可讀否?
為確保你知道備份磁帶的格式與區塊數目大小, 先嘗試列出它的
目錄。 下列指令可產生 dump 備份磁帶的目錄: $ restore tbfy
block_size device-name
例如,從一個在 /dev/rmt/0cbn 磁帶設備上的 dump 磁帶(使用
的區塊因子是 32 )讀取其目錄,指令如下:
$ restore tbfy 32 /dev/rmt/0cbn
restore指令的語法
一旦可以讀取 dump 磁帶, 您必須決定要讀什麼資料及如何讀它
,以下討論 restore 一般常用的參數。
基本上,有四件事情是你希望dump磁帶提供的:
‧讀取dump磁帶的目錄以確認內容是否需要;
‧回復整個檔案系統;
‧回復選定的檔案;
‧執行互動式的回復。
一般restore指令語法如下:
restore [trxi]vbsfy blocking-factor file-number device-name
restore指令的選項
restore 的行為如何,端視其後的參數型態決定回復的形式。 第
一個參數指明 restore 的型式,只可以從四種可能的參數中挑選一
種:
t:告訴restore顯示備份磁帶的目錄。
r:指明備份磁帶的整卷內容回復到目前的工作目錄之下。
x:只回復restore指令行末端所列的檔案。
i:以互動方式回復資料。
決定回復的行為
下面的參數不是必須的,但會影響回復的行為:
v:指定以明細(verbose)的方式輸出。
s:在開始讀磁帶前需跳過一些磁帶上的檔案。
b:指定正要讀取磁帶的區塊因子。
f:標明正使用的備份設備之檔名。
y:告訴restore嘗試從讀取錯誤中救回。
轉貼~
2008年3月23日 星期日
| [+/-] |
[SSH]安全檔案傳輸靠ssh ,Ftp拋腦後 |
透過ssh傳輸檔案
早期都是靠Ftp與如果要匿名登入主機都是用ncftp
後期可以用lftp ~好用且操作很像bash
當然ssh是比較安全的!但百密無一疏在安全的機制都會有
漏洞!只要縮小一些範圍的主機與ip~就沒什麼好擔心
假設家裡架設了一台sshd 主機
Client端怎麼連線
sshd [host] host可以是ip與網址
如果要抓檔案 (SSH FTP功能)
用這個檔案
sftp [host]
sftp user@hosname
sftp -l username hostname
都可
如果登入不想輸入秘碼 那麼就要建立金鑰
1.在client 端打ssh-keygen -t rsa (version 2 的 RSA )演算方法
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 按下Enter
Enter passphrase (empty for no passphrase): 按 Enter
Enter same passphrase again:按 Enter
Your identification has been saved in /root/.ssh/id_rsa. 私鑰
Your public key has been saved in /root/.ssh/id_rsa.pub. 公鑰
ps. /.ssh目錄會自動建立 前面的/root 是看你現在是用那一個使用者登入
私鑰放在原目錄不動,將公鑰上傳到Server端的/root/.ssh/裡
scp id_rsa.pub root@host:~/
id_rsa.pub 100% 231 0.3KB/s 00:00
連到Server上將公鑰增加到 authorized_keys 檔案中(預設沒這個檔案)
cat id_rsa.pub >>authorized_keys 此時.ssh/下會產生一個檔案
exit 離開
在client 端在連線一次 就不用密碼了!
2008年3月22日 星期六
| [+/-] |
[MBR]GRUB多重Linux安裝解釋及原理 |
通常在家裡的環境是灌xp又灌linux的!如果想要同時灌兩個以上的Linux呢!甚至更多Distribution
該怎麼做呢!
其實不會很難!
以下就來試看看!
(假設您對磁碟分割已經了解,下面介紹的是MBR及super block部份)
安裝的順序是-->
XP > Ubuntu 7.10 > Fedora 6
160GB分成 (30GB->xp)(80GB->ubuntu)(30GB->fedora 6)剩20Gb就是及以後要擴充的系統及備份
此為160G sata硬碟代號為(sda) 如為IDE介面是(hda)
在grub底下硬碟都稱為(hd0)第一顆硬碟,而(hd0,0)就是第一顆硬碟的第一個分割區以此類推
在Linux底下的代號為:xp(/dev/sda1[hd0,0])Ubuntu(/dev/sda2[hd0,1]),Fedora(/dev/sda4[hd0,3)swap (/dev/sda3)
通常會將xp先灌在第一個分割區[hd0,0]然後再安裝剩餘兩套Linux Distribution
灌好xp在灌第一套linux通常不會有問題 因為linux 是後來才灌
且grub能夠認到xp所以在選單制做上就會多出一個xp的選項
就像這樣
title windows nt/2000/xp
root (hd0,0)
savedefault
makeactive
chainloader +1
先要了解一件事就是Grub的結構
大家都知道MBR很小只有512bytes 然而/boo/grub/stage1 剛好也是512bytes
知道我要說什麼了嗎?
Grub安裝第一件事就是將stage1(最小主程式)載入MBR~而後就是載入剩於的設定檔
stage2及其他環境參數檔
所以在安裝好linux後能夠有個選單是像這樣的
title ubuntu 7.10, kernel 2.6.22-14-generic
root (hd0,1)
kernel /vmlinuz-2.6.22-14-generic ro quiet splash locale=zh_TW
initrd /initrd.img-2..22-14-generic
quiet
title ubuntu 7.10, kernel 2.6.22-14-generic (recover mode)
root (hd0,1)
kernel /vmlinuz-2.6.22-14-generic ro single (就是runlevel 1)
initrd /initrd.img-2..22-14-generic
title ubuntu 7.10 memtest86+
root (hd0,1)
kernel /memtest86+.bin
title windows nt/2000/xp
root (hd0,0)
savedefault
makeactive
chainloader +1
大致上是這樣
如果在安裝一套LInux 上去
會發生什麼事呢?
大家應該知道super block也可以放boot loader
所以一開始我灌xp時會強制將MBR[hd0]與super bloack[hd0,0]
裡的boot loader 灌成xp自帶的開機程式
這也就是為什麼要先灌xp在灌linux的原理
既然知道原理就好解決
xp的super bloack[hd0,0]就不用動他 這樣以後才能將loader 控球權丟給xp
title windows nt/2000/xp
root (hd0,0)
savedefault
makeactive
chainloader +1
這一行就是將loader丟給xp 讓他自己開機的意思!
回到正題
灌完xp後在灌第一套linux
linux會將boot loader灌成Grub並且自動在安裝時
尋找其他系統的loader
比如說找到xp..就會在menu.lst裡新增一筆title為xp的loader
目前已經知道有兩套系統存在且選單也能夠正常啟動ubuntu與xp
接下來在灌fedora 6 第二套linux前請先做一個動作
就是將ubuntu 的grub也安裝一份到super bloack[hd0,1]
步驟:
root@ubuntu:~/grub
grub> find /boot/grub/menu.lst or find /grub/menu.lst
(hd0,1)
grub>root (hd0,1) 設定含/boot那個分割區
grub>setup (hd0,1) 安裝到super bloack
為什麼呢? 因為灌完fedora之後會變成有雙重選單
所以會把原先ubuntu 灌在MBR裡的boot loader蓋過去
但我只想要保留一個選單原本ubuntu那一個,然後在視fedora的menu.lst
將內容裡的
title Fedora core (2.6.18-1.2798.fc6)
root(hd0,3)
kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet vga=787
initrd /boot/initrd-2.6.18-1.2798.fc6.img
title copy到ubuntu的menu.lst 做整合
清單如下:完整的
title ubuntu 7.10, kernel 2.6.22-14-generic
root (hd0,1)
kernel /vmlinuz-2.6.22-14-generic ro quiet splash locale=zh_TW
initrd /initrd.img-2..22-14-generic
quiet
title ubuntu 7.10, kernel 2.6.22-14-generic (recover mode)
root (hd0,1)
kernel /vmlinuz-2.6.22-14-generic ro single (就是runlevel 1)
initrd /initrd.img-2..22-14-generic
title ubuntu 7.10 memtest86+
root (hd0,1)
kernel /memtest86+.bin
title Fedora core (2.6.18-1.2798.fc6)
root(hd0,3)
kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet vga=787
initrd /boot/initrd-2.6.18-1.2798.fc6.img
title windows nt/2000/xp
root (hd0,0)
savedefault
makeactive
chainloader +1
然後在將Fedora 灌在MBR的loader給蓋過去
grub> find /boot/grub/menu.lst or find /grub/menu.lst
(hd0,1)ubuntu
(hd0,3)fedora
找到兩個
grub>root (hd0,1) 這邊我們選ubuntu的menu.lst
grub>setup (hd0) 這次是安裝到MBR唷!重要
這樣就完工了!
其實方法很多不一定要造我這樣做








