公司出於數據安全須要, 把linux服務器放到了子網裏面, 可是linux查看文檔不是太方便. 而後領導說折騰一臺windows專門用來查看文檔.linux
網上找了下 pGina 能夠用於windows的LDAP認證. 由於AD不在那個子網中, 出於安裝考慮, 只有使用linux的LDAP認證了.git
直接起一臺windows 2008虛擬機. 在裏面安裝好 pGina. 打開軟件.github
1: 把LDAP 相關選項勾上. 由於要操做組因此把 Gateway也勾上了.而後再點擊配置golang
2: 這裏直接更改ldap的地址及base 便可windows
3: 點擊 Gateway. 我這邊是設置爲只要登陸的都自動添加到遠程桌面用戶組. 而後 保存安全
4: 記得更改一下認證順序.bash
5: 如今能夠輸入相關帳號測試一下. 若是LDAP 是綠色的就能夠了. 剛開始裏面若是沒有服務器
這個帳號的話, 可能Local Machine 是紅色的. 不要緊. ide
6: 如今遠程登陸這臺服務器是這樣的. 到些完成測試
認證作好後, 考慮文檔都在 Linux NFS上面, 而後還安裝了NFS客戶端, Windows 2008
直接添加 文件服務 角色便可.
爲了登陸系統後自動掛載NFS. 前面用BAT寫了下腳本, 但是真沒折騰出來, 一直有錯,
沒辦法,用golang寫了個.
package main import ( "os" "os/exec" "fmt" "bufio" "strings" "time" ) func main() { conf := make(map[string]string) user := os.Getenv("USERNAME") // 相關NFS服務器信息直接保存在下面這個文件中. f, err := os.Open(`c:\Windows\auto.nfs`) if err != nil { fmt.Println("Open Config File ERROR") os.Exit(1) } defer f.Close() rd := bufio.NewScanner(f) for rd.Scan() { trim := strings.TrimSpace(rd.Text()) split := strings.Split(trim,`\`) conf[split[len(split)-1]] = trim } if _, exist := conf[user]; exist { for i:=0; i<5; i++ { exec.Command("mount","-o rsize=32,wsize=32,fileaccess=755",conf[user],"z:").Run() time.Sleep(2000000000) if _, err := os.Open(`Z:\`); err == nil { fmt.Println("Mount NFS OK") os.Exit(0) } else { fmt.Println("Mount NFS ERROR") } } } }
編譯好後,放在 全部用戶 的啓動文件夾中搞定
另外上面這樣掛載NFS是隻讀的. 由於用戶名沒有映射, 考慮他們只是查看文檔就沒折騰了.
若是Linux NFS服務器是 4.1 的版本, 可能用這個會更加好一點, 支持LDAP認證
ms-nfs41-client 只支持 4.1
最後要注意的是 pGina 須要依賴 LanmanServer 服務.