首页 > 代码库 > Windows 2008 使用Linux LDAP认证
Windows 2008 使用Linux LDAP认证
公司出于数据安全需要, 把linux服务器放到了子网里面, 但是linux查看文档不是太方便. 然后领导说折腾一台windows专门用来查看文档.
网上找了下 pGina 可以用于windows的LDAP认证. 因为AD不在那个子网中, 出于安装考虑, 只有使用linux的LDAP认证了.
直接起一台windows 2008虚拟机. 在里面安装好 pGina. 打开软件.
1: 把LDAP 相关选项勾上. 因为要操作组所以把 Gateway也勾上了.然后再点击配置
2: 这里直接更改ldap的地址及base 即可
3: 点击 Gateway. 我这边是设置为只要登录的都自动添加到远程桌面用户组. 然后 保存
4: 记得更改一下认证顺序.
5: 现在可以输入相关账号测试一下. 如果LDAP 是绿色的就可以了. 刚开始里面如果没有
这个账号的话, 可能Local Machine 是红色的. 没关系.
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
Windows 2008 使用Linux LDAP认证