nsswitch:
Network Service Switch,網絡服務轉換,讓多種應用程式能夠靈活實作名稱解析的通用架構
解析庫:
檔案、MySQL、NIS、LDAP、DNS
通用架構,與各存儲互動的實作:
/usr/lib64/libnss*,/lib64/libnss*
配置檔案:/etc/nsswitch.conf
db: store1,store2,...
每種存儲中查找的結果狀态:STATUS => success | not found | unavail | tryagain
對應于每種狀态參數的行為:ACTION => return | continue
pam:Pluggable Authentication Module,插入式認證子產品
關于pam的更詳細的知識請參考《Linux-pam sag.pdf》,百度網盤中有
認證庫:
檔案、MySQL、NIS、LDAP
通用架構,與各存儲互動的實作,以及多種輔助性功能:
/usr/lib64/security/,/lib64/security/
配置檔案:/etc/pam.conf
/etc/pam.d/*.conf
通常每個應用使用一個單獨的配置檔案:
配置檔案中每行定義一種檢查規則,其格式如下:
type control module-path module-arguments
type:檢查功能類别,主要有以下幾種
auth:與帳号認證相關的認證和授權檢查
account:與帳号管理相關的非認證功能
password:使用者修改密碼時密碼檢查規則
session:使用者擷取到服務之前或使用服務完成之後(還未退出時)要進行的一些附加性操作
control:同一種功能的多個檢查之間如何進行組合。第一個失敗了第二個怎麼辦
有兩種實作機制:
a) 使用一個關鍵詞來定義。例如sufficient,required,requisite
b) 使用一或多個"status=action"形式的組合表示
簡單機制:
required:若第一個規則檢查通過,後面的同類規則依然要檢查;若第一個規則檢查未通過,後面的同類規則依然要檢查,但是最終其無法通過檢查規則的限制
requisite:若第一個規則檢查通過,後面的同類規則依然要檢查;若第一個規則檢查未通過,後面的同類規則無須再檢查,其擁有一票否決權
sufficient:若第一個規則檢查通過,後面的同類規則無須再檢查,其擁有一票通過權;若第一個規則檢查未通過,而後面的某個同類規則檢查通過,那麼其後面的同類規則無須再檢查
optional:可選,其規則僅供參考,通過也可以,不通過也可以,不影響最終結果
include:包含指定檔案中的相同類别的所有規則
複雜機制:[status1=action1,status2=action2,.....]
status:傳回狀态
action:
ok:一票通過權
done
die:一票否決權
ignore:可選,其規則僅供參考,通過也可以,不通過也可以,不影響最終結
bad:我說不過就不過,但是沒有一票否決權,後面依然要檢查
reset
module-path:子產品路徑
/lib64/security:此目錄下的子產品引用時可使用相對路徑,否則必須使用絕對路徑
module-arguments:子產品參數
子產品:
pam_shells.so
pam_limits.so
該子產品通過讀取配置檔案完成使用者對系統資源的使用控制
/etc/security/limits.conf
/etc/security/limits.d/*
文法:
<domain> <type> <item> <value>
<domain>:
username
@group
*:所有使用者
<type>:
hard:由root設定,通過kernel強制生效
soft:由使用者自行修改,但不能超過hard的限制
-:hard和soft同時限定
<item>:
nofile:所能夠同時打開的最大檔案數量
nproc:所能夠同時運作的最大程序數量
msqqueue:使用的POSIX消息隊列能夠占用的最大記憶體空間
sigpending:所能夠使用的最大信号數量
<value>
ulimit指令:
ulimit -n #:所能夠同時打開的最大檔案數量
ulimit -u #:所能夠同時運作的最大程序數量
本文轉自 忘情OK 51CTO部落格,原文連結:http://blog.51cto.com/itchentao/1924393,如需轉載請自行聯系原作者