公司出于数据安全需要, 把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写了个.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
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 服务.
本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1915278,如需转载请自行联系原作者