交叉編譯 Linux-PAM:pam.d 和 pam.conf 都缺失
我正在嘗試將 Linux-PAM 從 Ubuntu 主機交叉編譯到 powerpc 架構(執行 linux 核心 2.6.34)。首先,我執行 ./configure 命令,將 –host 路徑提供給交叉編譯器,將 –prefix 路徑提供給名為“target”的本地目錄作為配置命令的選項;之後,我執行 make 和 make install。make install 命令顯然沒有任何錯誤就結束了。在安裝過程結束時,在我的“目標”文件夾中創建了一些文件和目錄,但是 /etc/pam.d 失去了:我本來希望找到包含 PAM 模組的那個文件夾。一個 pam.conf 文件也失去了。難道我做錯了什麼?或者可能缺少 /etc/pam.d 和 pam.conf 是預期的行為?這些是我試圖交叉編譯的命令:
export PATH=/path/to/crosscompiler/$PATH ./configure --prefix=/home/target --host=powerpc-unknown-linux-gnu make make install
非常感謝。
據我所知,這是預期的行為,因為 PAM 旨在由系統管理員配置。實際上,大多數 Linux 發行版都會附帶它們自己的預設配置和假設(參見 Arch Linux:pambase,Debian:libpam-runtime),因此每個 Linux 系統都沒有為 PAM 提供規範的基本配置。
查看原始碼有一個範例
conf/pam.conf
,您可以將其轉換為 pam.d/ 結構(例如,通過cat pam.conf | pam_conv1/pam_conv1
在 conf/ 目錄中執行)。還有Beyond Linux From Scratch 手冊的說明,這將導致最小的設置。但是,我寧願建議您閱讀文件(ID 手冊頁和System Administrators’ Guide),並且根據您想要做的事情,也許還可以分發特定文件(例如Arch Linux Wiki、Securing Debian Manual),這樣您就知道如何 PAM工作,您可以編寫適當的配置。