用samba构建公司内部网络

ver 0.1

作者:fengyong (fengyong)
日期:2007-05-15

请尊重他人劳动成果,复制时请保留原作者信息(http://www.yiyou.org

前言

公司内部大约电脑80台,其中两台邮件服务器(FreeBSD),两台windows 2003 AD 兼文件服务器,我们主要需求:1、帐号集中管理。2、文件共享。由于windows 的文件服务器功能很差,主要是权限管理方面(可能是我菜)。经常有用户无意删除别人的文件,当你在服务器设置了权限后,用户还可以在客户端修改文件的权限。
由于自己一直对linux 感兴趣,所以对linux 应用方面比较了解,对于SAMBA 早已闻其大名,由于时间关系,一直没有机会去偿试。

需求

1、提供文件共享功能
2、能像AD 那样集中管理帐户。
3、能提供磁盘限额

所需软件:

1、Samba 3.x
2、Debian 4.0

注:不管你使用什么unix/linux系统,按这种方法都可以实现以上功能。

一、安装设置SAMBA

1、安装系统

安装系统时注意,尽量将/home 目录放在一个分区上,因为要为该分区进行磁盘限额,并有足够大的空间为用户提供存储。

mail:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             2.3G  491M  1.7G  23% /
tmpfs                  90M     0   90M   0% /lib/init/rw
udev                   10M   56K   10M   1% /dev
tmpfs                  90M     0   90M   0% /dev/shm
/dev/sda6             5.3G  139M  4.9G   3% /home

2、安装软件

安装SAMBA 及 QUOTA 工具

mail:~# apt-get install samba quota


3、配置samba

mail:~# cd /etc/samba/
mail:/etc/samba# mv smb.conf smb.conf.bak
mail:/etc/samba#vim smb.conf

下面解释smb.conf 的配置文件(注意,当你将下面的文件复制到UNIX 时,最好把中文去除)

#全局选项
[global]
		#设置字符的格式,cp950  为繁体字符,cp963 为简体
        dos charset = cp950
        unix charset = utf8
        display charset = utf8
		#设置工作组,及你的机器名。
        workgroup = ELEMENT
        netbios name = ELEMENTSERVER
		#服务器设置
        server string = This is Element File server %v
        log file = /var/log/samba/%m.log #%m 为登录系统的机器名
        max log size = 500   #日志大小,单位为KB
        name resolve order = lmhosts bcast host #NETBIOS 查找的顺序,
        time server = Yes  #打开时间服务器
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192  #TCP 选项
        #以下为域服务器选项
		logon script = startup.bat  #当用户登录域时执行的脚本
        logon drive = K:   #映射到用户本地的盘符
        logon path =    #设置漫游文件位置,当没有这个选项时,将在用户目录下自动生成profile 文件夹,当你在= 后面保持空白时,将用户配置文件设置为本机。
        os level = 200  #域的级别,越高权限越大
        preferred master = Yes
        domain master = Yes
        dns proxy = No
        wins support = Yes #打开WINS 的支持
        admin users = root #加入域的用户
		#在UNIX 里,当你将一台机要与另一台机进行密码验证时,必须将机器增加一个帐户,比如: clinet01 ,必须增加client01$ 这个帐户。当你要将一台机器加入域时,下面的命令可以省去添加机器信任的麻烦。
        add machine script = /usr/sbin/useradd -d /dev/null -s /bin/false -g machines %u
			
#windows 登录目录设置
[netlogon]
        comment = Network logon Service
        path = /home/samba/netlogon
        write list = root
        guest ok = Yes
#用户家目录设置
[homes]
        comment = Home directories
        valid users = %S
        read only = No
        create mask = 0664
        browseable = No
#临时文件,用于为用户进行文件交换
[temp]
	comment = the user groups work directory
	path = /home/temp
	valid users = @users
	read only = No
	guest ok = Yes

创建登录脚本

mail:/etc/samba# mkdir -p /home/samba/netlogon/
mail:/etc/samba# vim /home/samba/netlogon/startup.bat

脚本内容

net time \\elementserver /set /yes
net use M: \\elementserver\temp

转换脚本内容为DOS 格式

mail:/etc/samba# apt-get install tofrodos
mail:/etc/samba# unix2dos /home/samba/netlogon/startup.bat

创建所临时文件夹

mail:/etc/samba# mkdir /home/temp
mail:/etc/samba# chgrp users /home/temp/
mail:/etc/samba# chmod 1770 /home/temp/

重启SAMBA

mail:/etc/samba# /etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.

添加组及用户

mail:/etc/samba# groupadd machines
mail:/etc/samba# groupadd users

添加一个系统用户

mail:/etc/samba# useradd -m -s /bin/false -g users user01

将用户添加为samba 用户

mail:/etc/samba# smbpasswd -a user01
New SMB password:
Retype new SMB password:
Added user user01.

添加root 到samba 帐户中

mail:/etc/samba# smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.

二、设置磁盘限额

1、打开磁盘限额(添加红色的内容)

mail:~# vim /etc/fstab 
# /etc/fstab: static file system information.
#
#                
proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    defaults,errors=remount-ro 0       1
/dev/sda6       /home           ext3    defaults,usrquota,grpquota        0       2
/dev/sda5       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

创建配置文件

mail:/home# touch /home/aquota.user
mail:/home# touch /home/aquota.group

重启系统

mail:/home# reboot

配置组磁盘限额

mail:~# edquota -g users

下面配置30M 空间作为测试

soft 是指软限制,当你超过这个限制时,系统警告你,但你还可以继续使用
hard 指硬限制,超过限制将不能使用。

前面一组soft/hard 指空间限制,后面一组指文件数

Disk quotas for group users (gid 100):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda6                        20       27000      30000          5        0        0 

 

三、将windows 客户机加入域

1、设置WINS,在WINS 服务器中,填入服务器IP地址,以便找到服务器

2、在网域中填入工作组的名字,输入ROOT 的用户名及密码加入域

3、登录服务器

配置文件

fstab

smb.conf

startup.bat

参考文档

http://linux.vbird.org/linux_server/0370samba.php

http://linux.vbird.org/linux_basic/0420quota.php

http://blog.5ilinux.com/archives/2003/11/samba30pdc.html