当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 想用NFS(network file system)实现服务器home目录的挂载
帖子发表于 : 2010-03-03 20:51 
头像

注册: 2008-07-03 19:25
帖子: 125
送出感谢: 0 次
接收感谢: 0 次
我现在有一台装有redhat enterprise linux 5.3的file server,和几台装有ubuntu 9.04 的dell 台式工作站(clients)。
我想实现的是所有clients中用户的/home目录都是共享file-server上面的同一个目录,file-server实现对用户/home目录中数据的管理,不管理用户的配置,每个用户可以在自己的机器(clients)上面建立用户自己的配置。另一个需要file-server管理的就是客户机的用户名和密码。
也就是说,每个客户机其实只是一台机械的机器,不管理自己机器上面的用户,客户机的作用就是连接服务器提供/home目录的数据,然后正常工作。

这其实是一种集群的工作方式,想某些集群的机器就是这样的部署(比如 dell powedge 2950),但是集群系统一般用的是rocks操作系统,这种系统里面有自己的方式(一种软件系统)可以让主节点(服务器)管理各个子节点(client)的用户名和密码。

问题是,我想用nfs实现上面所说的类似cluster的工作方式,将我的服务器和client变成一个cluster系统。
请问我该怎么办呢?nfs里面可以让服务器管理客户机的用户名和密码吗?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 想用NFS(network file system)实现服务器home目录的挂载
帖子发表于 : 2010-03-04 10:51 

注册: 2008-06-25 11:28
帖子: 196
送出感谢: 0 次
接收感谢: 0 次
这属于高级问题,不适合发发这儿。等待高手解答。


_________________
山不转,水转,山不移,我移。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 想用NFS(network file system)实现服务器home目录的挂载
帖子发表于 : 2010-03-04 11:10 
头像

注册: 2007-03-02 17:36
帖子: 7277
送出感谢: 3
接收感谢: 99
有意思,考虑是不是可以把/etc/passwd和shadow链接到/home ?然后Home目录挂载NFS目录上?


_________________
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 想用NFS(network file system)实现服务器home目录的挂载
帖子发表于 : 2010-03-04 11:56 

注册: 2010-02-23 10:55
帖子: 72
送出感谢: 0 次
接收感谢: 0 次
这是专家级问题
菜鸟闪人咯。。。。。。。。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 想用NFS(network file system)实现服务器home目录的挂载
帖子发表于 : 2010-03-04 12:58 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
你说的那个rocks啥的,以前看到过,也就一linux发行版。

你所说的,大体有两个要求:

1. 集中帐号管理: 可以用ldap或者nis实现
2. NAS: nfs就好,至于在nfs服务器上,有没有那些客户的帐号,是无所谓的,没有的话,在服务器端看到的就是uid而已


_________________
弄个dropbox空间来备份文件或者做私人代码服务器
配置:git://github.com/roylez/dotfiles.git
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 想用NFS(network file system)实现服务器home目录的挂载
帖子发表于 : 2010-03-11 13:29 
头像

注册: 2008-07-03 19:25
帖子: 125
送出感谢: 0 次
接收感谢: 0 次
懒蜗牛Gentoo 写道:
有意思,考虑是不是可以把/etc/passwd和shadow链接到/home ?然后Home目录挂载NFS目录上?


我并没有忘记我的帖子,经过这些天的努力搜索和请教,总算有了些头绪,初步配置成功了我想要的东西,下面是我的工作总结:

在本文中我们要实现一个类似集群的系统,有一个主机,号称是文件服务器,大的硬盘空间保存了用户的home目录。我们使用NIS服务器在服务器上面进行用户的登录验证,使用NFS来做文件共享服务。

当用户登录的时候客户端机器首先到服务器的nis服务器中获得用户登录的验证信息,然后自动挂载服务器上面的用户的根目录。

原理自不必说,直接进入配置。

服务器: Redhat Enterprise Linux 5.3
客户端: Ubuntu desktop edition 8.10

一、服务器端配置

首先要将所有客户端的主机名和IP地址加入到/etc/hosts中,这样,即便DNS服务器宕机,我们的集群系统还可以工作。此外,还应当确保此文件中有服务器本身的IP地址,而不是127.0.1.1。
[root@file-server ~]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost

192.168.1.190 zzm-desktop
192.168.1.195 web-server
192.168.1.193 file-server

::1 localhost6.localdomain6 localhost6


1、安装ypserv软件包:
[root@file-server redhat-nis]# rpm -i ypserv-2.19-5.el5.i386.rpm
warning: ypserv-2.19-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
[root@file-server redhat-nis]# rpm -qa|grep ypserv
ypserv-2.19-5.el5

2、设置 ypserv 服务开机后自动启动:
[root@file-server redhat-nis]# chkconfig ypserv on
[root@file-server redhat-nis]# chkconfig ypxfrd on
[root@file-server redhat-nis]# chkconfig yppasswdd on

3、设置 nis 的domain name:
[root@file-server redhat-nis]# nisdomainname fileserver.com

(Ubuntu系统安装nis的时候会在安装的时候让你设置域名,这点和redhat的不一样)

这样的设置只会在会话期间有效,重启系统就无效了,还需要在/etc/sysconfig/network文件中添加下面的一行:
NISDOMAIN=fileserver.com

[root@file-server redhat-nis]# more /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=file-server
NISDOMAIN=fileserver.com

4、设定主机的映射
修改 /etc/ypserv.conf文件,加上一行下面的配置:
192.168.1.0/24 : * : * : none

5、设定要导出哪些信息
修改 /var/yp/Makefile。根据说明修改就好了,我的使用默认的设置。

6、启动 ypserv:
[root@file-server redhat-nis]# service ypserv start
Starting YP server services: [ OK ]

7、构建nis映射数据库:
[root@file-server redhat-nis]# /usr/lib/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS
servers. file-server is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: file-server
next host to add:
The current list of NIS servers looks like this:

file-server

Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/fileserver.com/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/fileserver.com'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/fileserver.com'

file-server has been set up as a NIS master server.

Now you can run ypinit -s file-server on all slave server.

8、 重启启动nis服务
[root@file-server redhat-nis]# service ypserv restart
Stopping YP server services: [ OK ]
Starting YP server services: [ OK ]

9、测试服务是否正确启动:
[root@file-server redhat-nis]# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 822 status
100024 1 tcp 825 status
100004 2 udp 957 ypserv
100004 1 udp 957 ypserv
100004 2 tcp 960 ypserv
100004 1 tcp 960 ypserv
[root@file-server redhat-nis]# rpcinfo -u file-server ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
[root@file-server redhat-nis]#

二、配置服务器的NFS

1、安装NFS
[root@file-server ~]# rpm -qa|grep nfs
nfs-utils-lib-1.0.8-7.2.z2
system-config-nfs-1.3.23-1.el5
nfs-utils-1.0.9-40.el5
[root@file-server ~]#

2、配置/etc/exports文件
NFS的配置很简单,主要都在这个文件当中,下面是我的配置:
[root@file-server ~]# more /etc/exports
/home 192.168.1.0/24(rw,sync,insecure,no_subtree_check)

3、重启NFS服务
[root@file-server ~]# service nfs restart
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]


三、客户端配置

1、安装NFS客户端:
sudo apt-get install nfs-common portmap nis

安装nis的时候会让你输入nis的domain name,这时候输入我们第一步中设置的nis domain name。
如果输错了,可以用下面的命令进行修改:
sudo dpkg-reconfigure nis

2、portmap安全设置

修改/etc/hosts.deny,禁止任何主机访问本机的portmap端口:
zzm@zzm-desktop:~$ more /etc/hosts.deny
(... 省略 ...)
portmap : ALL

修改/etc/hosts.allow,将服务器的IP地址加上,允许服务器访问本机的portmap端口:
zzm@zzm-desktop:~$ more /etc/hosts.allow
(... 省略 ...)
portmap : 192.168.1.193

2、配置名字服务

这里需要修改/etc/passwd, /etc/group, /etc/shadow 文件,在末尾加上一行NIS配置,使系统可以到NIS服务器搜索用户信息。

这三个文件修改后的样子如下(注意最后以"+"和":"组成的行,就是我们添加的NIS信息,冒号的数目要和上面的行中的一样):
zzm@zzm-desktop:~$ more /etc/passwd
(... 省略 ...)
zzm:x:1000:1000:Zengming Zhang,,,:/home/zzm:/bin/bash
statd:x:112:65534::/var/lib/nfs:/bin/false
zengming:x:1001:123::/home/zengming/:/bin/bash
+::::::

zzm@zzm-desktop:~$ more /etc/group
(... 省略 ...)
admin:x:123:zzm
zzm:x:1000:
sambashare:x:124:zzm
vboxusers:x:125:
+:::

zzm@zzm-desktop:~$ sudo more /etc/shadow
(... 省略 ...)
zzm:$1$DoFlP/06$Chrl7zALVXX4V0ghi.2iV/:14676:0:99999:7:::
statd:*:14676:0:99999:7:::
zengming:$6$x7/lT6Ft$yyiW/Lo9DtyRjyDc.IYe6N8ySj7m9zG72jnAAtsiLGiGTHMf88j4Fjldt6I
pNaVeaqF86v3Qhl3n0nh0egWR/1:14678:0:99999:7:::
+::::::::

3、配置NIS服务器信息

修改/etc/yp.conf文件,添加NIS服务器的信息:
zzm@zzm-desktop:~$ more /etc/yp.conf
(... 省略 ...)
# ypserver ypserver.network.com
ypserver 192.168.1.193

4、重启启动NIS服务

zzm@zzm-desktop:~$ sudo /etc/init.d/nis restart
* Starting NIS services [ OK ]
zzm@zzm-desktop:~$

如果这个时候重新启动不成功,出现了类似下面的输出,可以尝试重新启动系统:
* Starting NIS Services
* Binding to YP Server
* ....
* ....
* ....
* ....
* .... (注: 重复10次,而且时间很长)
* ....
* ....
* ....
* ....
* .... [fail]
[ OK ]

5、设置NFS挂载

使用mount命令手动挂载:
sudo mount 192.168.1.193:/home /home

可以在/etc/fstab文件中添加一行信息,使得每次客户端机器启动的时候自动从服务器挂载用户的home目录:
zzm@zzm-desktop:~$ more /etc/fstab
# /etc/fstab: static file system information.
(... 省略 ...)
192.168.1.193:/home /home nfs rsize=8192,wsize=8192,timeo=14,intr

四、一些问题

1、user is not in the sudoers file

当我在redhat上面添加了用户,将其添加到adm组中,但是在客户端上面使用这个用户登录,在执行sudo 开头的命令的时候会出现 user is not in the sudoers file 这样的错误。
在我们的客户端ubuntu 系统中,只要将user添加到admin组中,就可以使用sudo命令以root身份执行命令。
但是服务器是RHEL上面的NIS,在redhat上面,根本没有所谓的admin组,只有adm组。我创建了一个admin组,然后将用户添加到admin组成,但是在ubuntu上面还是不承认这个用户可以使用sudo来执行命令。

我还使用“visudo”命令编辑过 redhat enterprise linux上面的/etc/sudoers文件,给我新建的用户执行所有命令的权限,但是还是不行,ubuntu依然固执的说: user is not in the sudoers file.

可见客户端ubuntu还是对redhat上面的用户有点“见外”。

这个问题我现在还没有解决! 请问各位有什么建议吗?

[参考资料]
Hiweed 《Ubuntu server 最佳方案》
http://blog.csdn.net/jcwKyl/archive/200 ... 27020.aspx


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 想用NFS(network file system)实现服务器home目录的挂载
帖子发表于 : 2010-03-16 17:57 
头像

注册: 2008-07-03 19:25
帖子: 125
送出感谢: 0 次
接收感谢: 0 次
Several days past, I still can't get root level access rights from ldap server.

I have followed the instructions here, but the problem remains:
http://www.gratisoft.us/sudo/man/sudoers.ldap.html.

##################
My server configurations are:

[1]/etc/openldap/slapd.conf:
------------------------------
The sudoers.schema has been included and indexed:
include /etc/openldap/schema/sudoers.schema
index sudoUser eq

[2]/etc/ldap.conf:
------------------------------
sudoers_base has been set:
sudoers_base ou=SUDOers,dc=file-server

[3]Some contents in ldap database:
------------------------------
# SUDOers, file-server
dn: ou=SUDOers,dc=file-server
ou: SUDOers
objectClass: top
objectClass: organizationalUnit

# %sysadmins, SUDOers, file-server
dn: cn=%sysadmins,ou=SUDOers,dc=file-server
objectClass: top
objectClass: sudoRole
cn: %sysadmins
sudoUser: %sysadmins
sudoHost: ALL
sudoCommand: ALL

(sysadmins is a group name that I created in my ldap server, what I want
is user in this group can get root level access rights.)
##################

##################
My client configurations are:

[1]sudo-ldap:
------------------------------
A "sudo-ldap" package of version 1.6.9p17-1ubuntu2.2 has been
installed.

[2]/etc/ldap.conf:
------------------------------
sudoers_base has been set:
sudoers_base ou=SUDOers,dc=file-server

[3]/etc/nsswitch.conf
------------------------------
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed,
try:
# `info libc "Name Service Switch"' for information about this file.

# pre_auth-client-config # passwd: compat
passwd: files ldap
# pre_auth-client-config # group: compat
group: files ldap
# pre_auth-client-config # shadow: compat
shadow: files ldap

# added by zengming, for sudo issue.
sudoers: ldap files

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

# pre_auth-client-config # netgroup: nis
netgroup: nis

[4]I do can see that the user is in the sysadmins group as authorized
from ldap server:
jingna@zzm-desktop:~$ id
uid=10001(jingna) gid=10000(bioinf)groups=10000(bioinf),10004(sysadmins)
##################

So, any ideas of you? Please let me know, thanks very much in advance!


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 想用NFS(network file system)实现服务器home目录的挂载
帖子发表于 : 2010-09-22 7:37 

注册: 2010-05-21 23:55
帖子: 63
送出感谢: 0 次
接收感谢: 3
:em11 JIA YOU!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Google [Bot] 和 5 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译