天天看点

sys520084玩samba(上)

今天的任务主要是配置SAMBA服务器,所测试环境是在虚拟机中安装的RHEL4,呵呵,什么时候才有自己的测试机呢?^_^!

在进行安装前先到http://us4.samba.org/samba/看看,介绍什么的我认为是没必要看了,原因很简单,我们既然不知道他是做什么的,还要配他做什么?^_^!那么主要看什么呢?看看FAQ和HOW TO Install和officail HOWTO,一大堆英语是不是很头痛,有幸运在SAMBA提供的镜像中有一个香港的镜像里面有很多影像资料,非常不错^_^!

http://hk.samba.org/index.html#040620

准备完成后,还等什么?赶快开始玩我们的samba吧!

一:安装

1.基于RPM安装:

由于我在安装前已经把光盘文件的文件用数据重导向的方式放于自己建立的文件中,故能快速的知道samba位于第几张张光盘中。(关于数据重导向参阅附录2)

cat cdroom2.txt | grep 'samba'

/media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.9.i386.rpm

/media/cdrom/RedHat/RPMS/samba-client-3.0.10-1.4E.9.i386.rpm

/media/cdrom/RedHat/RPMS/samba-common-3.0.10-1.4E.9.i386.rpm

/media/cdrom/RedHat/RPMS/system-config-samba-1.2.21-1.noarch.rpm

没得说马上挂载第2张光盘^_^!

mount /dev/cdrom

然后依次输入下面三个命令:

rpm -ivh /media/cdrom/RedHat/RPMS/samba-common-3.0.10-1.4E.9.i386.rpm

rpm -ivh /media/cdrom/RedHat/RPMS/samba-client-3.0.10-1.4E.9.i386.rpm

rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.9.i386.rpm

为什么你不先安装主文件包呢?呵呵,我也想安装呀,但人家不给我安装有什么办法?说笑了,其实这里牵扯到RPM包的依赖性问题,说简单点就是不安装samba-common-3.0.10-1.4E.9.i386.rpm

就无法安装

samba-3.0.10-1.4E.9.i386.rpm ,了了吗?^_^

2.基于tarball包安装

其实在有RPM包的前提下是没必要安装什么tarball包的,麻烦的要死,但学的多点没有坏处不是吗?

首先用wget得到samba,最新版是samba-3.0.25c.tar.gz

tar -zxvf /root/samba-3.0.25c.tar.gz /usr/locate/src

cd /usr/locate/src/samba/source

./configure

make clean

make

make check

make install

make installman

make installbin

好了,samba就这样安装完成了,值得注意的是以tarball包安装完成后,它的配置文件在/usr/local/samba/lib/smb.conf.中

二.配置

1.简单配置:

SAMBA的配置文件根据版本不同其地址也不太相同,搜寻地址可以使用locate,find,whereis,我比较喜欢用find:

find /etc | grep samba

(为什么要搜寻/etc呢?请参阅附录3。关于locate,whereis的使用方法请自行"男人“)

找到配置文件后,别忙着配置,先把原来的文件备份下

cp -i /etc/samba/smb.conf /etc/samba/smb.bak

ll

备份完成后,开始配置吧

vi /etc/samba/smb.conf

^_^,一大串英文是不是很头晕呀?不怕,不怕,pk984813老兄已经把其翻译为中文了链接在

http://blog.chinaunix.net/u/12502/showart_222813.html

当然我的bolg也有转载bolg.csdn.net/sys520084

o(∩_∩)o...

废话了一大堆,切入正题,开始修改配置文件。

************************************************

# workgroup = NT-Domain-Name or Workgroup-Name

   workgroup = SYS1(默认是MYGROUP,这里改为你需要共享的工作组)

# server string is the equivalent of the NT Description field

   server string = this iS samba Server(主机说明,只要不伤害到国家,不伤害到人民,你想写什么就写什么)

# Put a capping on the size of the log files (in Kb).

   max log size = 0(这里设置为0,是因为想让日志大小没有限制,默认是50)

# Security mode. Most people will want user level security. See

# security_level.txt for details.

   security = share(share:是不进行安全登录,也就是说你可以不输入用户名密码直接登录,当然他也没有提示;user:和上面刚好相反,需要输入用户名和密码

domain:让你自己的samba成为主控计算机PDA,这主要用于域模式。默认时是user)

 Configure Samba to use multiple interfaces

# If you have multiple network interfaces then you must list them

# here. See the man page for details.

;   interfaces = 192.168.1.188/24

(这里设置为你samba服务器的IP地址和子网掩码,其实默认也行)

************************************************

嘎嘎!基本设定就这样了。现在wq保存吧,然后输入testparm

这样做的目的是检查smb.conf的语法设定的是否正确,只要不出现错误设定你就开心的庆祝吧,哈哈,我们的samba马上就好了,再接再厉,启动他吧!

在RHEL4中samba的启动方式有两种

一种是:/etc/rc.d/init.d/smb start (关闭是stop,重启是restart)

二种是:service smb start(这种方式只有Redhat才有)

:-)检查你的网络邻居,看到什么了?^_^

喝杯咖啡抽支烟,杂们继续,windows看linux主机共享文件是比较简单的,但是Linux下就要复杂一些,主要有三种方式:ftp,smbmount,mount。由于ftp有点复杂,且不适用,所以这里就弄弄smbmount,mount好了。

首先查看目标机器的都共享了什么目录smbclient -L //192.168.1.10(这里接目标IP或是Netbios名

************************************************

[[email protected] ~]# smbclient -L //192.168.1.10

Password: (由于我们使用的是匿名登录,所以这里密码直接enter即可)

Domain=[SYS] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment

        ---------       ----      -------

        dianlu          Disk     

        E$              Disk      Default share

        samba           Disk     

        IPC$            IPC       Remote IPC

        D$              Disk      Default share

        SharedDocs      Disk     

        m               Disk     

        F$              Disk      Default share

        ADMIN$          Disk      Remote Admin

        C$              Disk      Default share

session request to 192.168.1.10 failed (Called name not present)

session request to 192 failed (Called name not present)

Domain=[SYS] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

        Server               Comment

        ---------            -------

        Workgroup            Master

        ---------            -------

************************************************

这里我们需要将samba这个远程目录挂载的到自己的linux机器上的/tmp/linshi这个目录中(如果没有可用mkdir自行创建)。

[[email protected] ~]# smbmount '//192.168.1.10/samba' /tmp/linshi

(这里如果出现Could not resolve mount point XXXX的提示语言请重启一下samba即可)

[[email protected] ~]#[[email protected] linshi]# ll /tmp/linshi

total 17752

-rwxr-xr-x  1 root root 18178029 Sep  4  2007 samba-3.0.25c.tar.gz

************************************************

^_^!成功了。

 附录1:NetBIOS(网络输入输出系统)是一个能让不同计算机通过局域网通信的程序。它是IBM针对早期早期的PC网络设计的,后来被微软采用,因此成为了实际上的行业标准。网络输入输出系统用于以太网和令牌环网络,作为网络基本输入输出系统扩展用户界面的一部分,现在也能用于微软的操作系统中。由于它本身不能支持路由机制,所以在广域网里必须使用其它的"传输机制"(比如传输控制协议)作为NetBIOS的辅助。NetBIOS可以让程序不必处理网络传输的细节问题,例如错误校正。NetBIOS查询需要符合网络控制块(NCB)的格式,并用之来确定信息的来源和目的地。NetBIOS提供开放式系统互联(OSI)模型里的会话和传输服务。然而他不提供传输的帧或者数据格式的标准。标准帧格式是由NetBUI提供的。NetBIOS提供两种通信模式:会话或电报。会话模式能让计算机建立"会话"连接,能处理大量的信息,并提供错误检测和修复。电报模式是没有连接的(每一个消息是独立发送的),信息必须更小,而程序必须负责错误检测和恢复。电报模式也支持局域网里的信息

2.数据流重导向就是将某个指令执行后应该出现在屏幕上的资料,给他传输到其他的地方。在文章中提到将光盘内容重导到特定地方的方法是:

mount /dev/cdrom

find /media/cdrom > ~/cdrom1.txt

umount

查找时只需输入:

cat ~/cdrom1.txt | grep ‘samba'

即可。

3./etc:系統主要的設定檔幾乎都放置在這個目錄內,例如人員的帳號密碼檔、 各種服務的啟始檔等等。一般來說,這個目錄下的各檔案屬性是可以讓一般使用者查閱的, 但是只有 root 有權力修改。並且在此目錄下的檔案幾乎都是 ASCII 的純文字檔案哩。 不過, FHS 建議不要放置可執行檔在這個目錄中喔。比較重要的檔案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11, /etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目錄有:

    * /etc/init.d/:所有服務的預設啟動 script 都是放在這裡的,例如要啟動或者關閉 iptables 的話:

      /etc/init.d/iptables start

      /etc/init.d/iptables stop

    * /etc/xinetd.d/:這就是所謂的 super daemon 管理的各項服務的設定檔目錄。

    * /etc/X11:與 X Window 有關的各種設定檔都在這裡,尤其是 xorg.conf 或 XF86Config 這兩個 X Server 的設定檔。(呵呵,这是从鸟哥上copy的,更多内容请参阅http://www.pathname.com/fhs/)

继续阅读