Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1298839
  • 博文数量: 254
  • 博客积分: 1586
  • 博客等级: 上尉
  • 技术积分: 2295
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-15 16:38
个人简介

linux学习中

文章分类

全部博文(254)

文章存档

2016年(6)

2015年(2)

2014年(74)

2013年(93)

2012年(12)

2011年(2)

2010年(51)

2009年(14)

分类:

2009-11-05 09:45:15

NFS+NIS+Samba实现家目录共享方案(2009-09-17 10:09:55)

在开始之前,先声明一下,内容大部分来于Hiweed的大作《ubuntu server最佳方案》,我只是在学习的过程中进行了整理和补充。毕竟别人的东西不可能让自己完全的明白。

这里要实现的是家目录的共享,服务器运行Ubuntu server,桌面系统有ubuntu-desktop和windows。当用户在桌面系统登录时,能够自动挂载服务器的家目录/home,用户所做的操作实际上是基于服务器的家目录上的。

服务器IP:192.168.91.162

客户端IP:192.168.91.161(ubuntu),192.168.91.163(windows)

为了实现这样的方案,服务器需要安装下面软件:

sudo apt-get install nfs-kernel-server nfs-common portmap nis samba

其中

nfs-kernel-server:linux的NFS服务器

nfs-common:NFS通用程序

portmap:RPC端口映射程序

nis:用来同步用户信息

samba:Linux的samba服务器,实现linux与windows的交互

(1)服务器/etc/hosts配置

在这个文件中,有这么两行127.0.0.1和127.0.1.1,请把127.0.1.1换成服务器的真是IP,否则可能导致NIS无法启动。此外,把所有客户端的主机名和IP加到文件中(可能的话),尤其是linux客户端,windows可以不必。

(2)portmap的安全设置

在/etc/hosts.deny中加入

portmap mountd nfsd statd lockd rquotad : ALL

在/etc/hosts.allow中加入服务器和客户端(ubuntu-desktop)的IP

portmap mountd nfsd statd lockd rquotad :192.168.91.162 192.168.91.161 192.168.91.163

protmap ypserv ypbind : 192.168.91.162 192.168.91.161 192.168.91.163

(3)NIS服务器配置

把/etc/default/nis文件中的NISSERVER一行修改为NISSERVER=master

在/etc/yp.conf中添加一行信息:

domain ldh.com server 192.168.91.162

注:在安装NIS的时候会要求输入一个域名,服务器和客户端是一样的域名,否则NIS无法通信。

在/etc/ypserv.securenets中将0.0.0.0那行注释掉,然后把NIS客户端的IP添加进去:

host 192.168.91.161

注:NIS只负责linux之间的通信,跟windows没有关系。

修改/etc/netgroup,建立一个组,把NIS客户端加入:

nfsclients (ldh-desktop, , )(client, , )...

组的名称随便取,括号中为客户端信息:主机名、用户、域名,用户和域名貌似可以不写。

然后,初始化数据库

sudo /usr/lib/yp/ypinit -m

最后重启NIS服务

sudo /etc/init.d/nis restart

如果NIS无法启动提示binding to YP server...fail,请确认在/etc/hosts是否正确填写了服务器的IP。

另外,如果以后新建用户,删除、修改用户信息和密码,以及修改主机名之类的,都要重建YP数据库

sudo make -C /var/yp

(4)用/etc/exports配置共享目录

在文件中加入

/home    *(rw,sync,no_subtree_check,insecure)

可以将*化成网段如192.168.91.0/24或者主机名ldh-desktop

no_subtree_check:不检查子目录,提高传输速度

insecure:使用大于1023的端口

最后重启NFS服务

sudo /etc/init.d/nfs-kernel-server restart

(5)NFS客户端配置

安装客户端软件:

sudo apt-get install nfs-common portmap nis

NIS的域名要和服务器的域名一致,如果不一致,可以用sudo dpkg-reconfigure nis更正

在/etc/hosts.deny加一行portmap:ALL

在/etc/hosts.allow加一行,把NIS服务器IP加上,portmap:192.168.91.162

在/etc/passwd最后加一行

+::::::

这行的意思是如果本地有登录的用户的信息,就直接用本地用户名登录,否则的话就通过NIS来获取用户账号信息。

在/etc/group最后加一行

+:::

在/etc/shadow最后加一行

+::::::::

修改/etc/yp.conf,加入一行

ypserver 192.168.91.162

最后重启NIS。

修改/etc/fstab,添加一行

192.168.91.162:/home /home nfs auto,rsize=8192,wsize=8192,timeo=14.intr 0 0

让客户端开机自动挂载服务器的/home目录。

最后测试一下与服务器的通信情况:

yptest或者ypwhich或者ypcat

如果没有问题,那么到此linux客户端和linux服务器之间的沟通就没有问题了。

(6)建立用户信息

在/etc/skel下面建立一个文件夹personal

sudo chmod 700 -R personal

创建用户帐户,如ldh

将创建的用户帐户加入到samba中

sudo smbpasswd -a ldh

这里要求输入的密码最好和在系统创建该用户输入的密码一样

配置/etc/samba/smb.conf

在最后加入

[home]

guest ok=no

read only=yes

browseable=no 这样看不到别人的家目录

browseable=yes 这样可以通过home看到别人的家目录

注意:这里不要画蛇添足的设置path=/home,否则的话,失败。我也不知道为什么。

然后重启启动samba服务就行了

在windows客户端可以用用户名映射网络驱动器。

设置光驱共享

确认samba服务器的/etc/fstab中有这么一行

/dev/scd0    /cdrom    udf,iso9660    user,noauto,exec,utf8  0   0

然后修改/etc/samba/smb.conf加入

[cdrom]

read only=yes

locking=no

patn=/cdrom

guest ok=no

preexec=/bin/mount /cdrom

posrexec=/bin/umount /cdrom

同样可以映射光驱。

(7)小组共享

有时候可能要为某个小组的成员创建一个单独的共享目录,只允许小组成员访问。

先创建组sudo addgroup tech

将用户加入小组

sudo adduser ldh tech

创建共享目录

sudo mkdir /home/tech

sudo chgrp tech /home/tech/

sudo chmod 770 /home/tech/ 允许小组成员读写

修改smb.conf

[tech]

comment=technology department

path=/home/tech

read only=no

guest ok=no

browseable=yes

create mask=0660

create directory=0770

valid users=+tech  注:tech前面是一个加号,代表组的意思,不是这个@符号,不然非郁闷死哈

froce group=tech 

重启samba服务即可。

(8)最后

说道NFS,其实相当于windows的活动目录。

说道samba,其默认的验证级别是user,在刚上上面所做的都没有在windows创建一个和samba一模一样的用户和密码。

如果在smb.conf有这么一个共享目录

[global]

security=user

[ftp]

path=/ftp

valid users=ldh

public-no

这样的话,则必须要求linux服务器要有ldh这个用户,samba中也必须有这个用户,最后windows系统中还必须有这个用户,用户名和密码必须和samba中的一模一样才可以。如果windows客户端很多呢?

所以,个人觉得这点samba还有待改进。

阅读(3402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~