Chinaunix首页 | 论坛 | 博客
  • 博客访问: 655165
  • 博文数量: 121
  • 博客积分: 1425
  • 博客等级: 中尉
  • 技术积分: 2059
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-03 15:34
文章分类

全部博文(121)

文章存档

2018年(1)

2017年(2)

2016年(1)

2015年(11)

2014年(14)

2013年(47)

2012年(45)

分类: IT业界

2012-04-29 10:56:24

先安装好rpm包
samba-3.0.23c-2.i386.rpm
samba-client-3.0.23c-2.i386.rpm
samba-common-3.0.23c-2.i386.rpm

第一步: 更改smb.conf

我们来实现一个最简单的功能,让所有用户可以读写一个Samba 服务器共享的一个文件夹;我们要改动一下smb.conf ;首先您要备份一下smb.conf文件;

[root@localhost ~]# cd /etc/samba
[root@localhost samba]# mv smb.conf smb.confBAK

然后我们来重新创建一个smb.conf文件;

[root@localhost samba]#touch smb.conf

然后我们把下面这段写入smb.conf中;

[global]
workgroup = LinuxSir
netbios name = LinuxSir05
server string = Linux Samba Server TestServer
security = share
[linuxsir]
path = /opt/linuxsir
writeable = yes
browseable = yes
guest ok = yes

注解:

[global]这段是全局配置,是必段写的。其中有如下的几行;

workgroup 就是Windows中显示的工作组;在这里我设置的是LinuxSir
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;

[linuxsir] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;
guest ok 匿名用户以guest身份是登录;

第二步:建立相应目录并授权;

[root@localhost ~]# mkdir -p /opt/linuxsir
[root@localhost ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[root@localhost ~]# chown -R nobody:nobody /opt/linuxsir

注释:关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。有些系统nobody用户组并非是nobody ;

第三步:启动smbd和nmbd服务器;

[root@localhost ~]# smbd
[root@localhost ~]# nmbd

第四步:查看smbd进程,确认Samba 服务器是否运行起来了;

[root@localhost ~]# pgrep smbd
13564
13568

第五步:访问Samba 服务器的共享;

在Linux 中您可以用下面的命令来访问;

[root@localhost ~]# smbclient -L //LinuxSir05
Password: 注:直接按回车

在Windows中,您可以用下面的办法来访问;

//IP地址





samba的功能很简单,就是为了使和windows之间能够实现共享。并且利用samba搭建文件,不仅比windows功能强大,而且访问速度快、安全。samba具有这么多优点,看来学习搭建samba是网管必须的任务了。首先说明,samba服务器需要两个守护进程:smbd和nmbd。smbd进程监听139TCP端口,处理到来的SMB数据包;nmbd进程监听137、138UDP端口,使其他主机能浏览服务器。

    一:安装和启动samba服务器

    ·安装samba服务

    首先使用rpm -qa | grep samba命令查看系统中是否已经安装了samba服务。如果没有放入第一张光盘,并挂载光驱。最后安装samba需要的组件。samba需要以下3个组 件samba_common_2.2.7a_7.9.0.i386.rpm、samba_2.2.7a-7.9.0.i386.rpm 、samba_client_ 2.2.7a_7.9.0.i386.rpm.

    注:由于我的linux使用最小化安装,所以在安装samba时提示

    error: failed dependencies:

            samba-common = 2.2.7 is needed by samba-2.2.7-3.7.3

            libcups.so.2   is needed by samba-2.2.7-3.7.3

    后来才知道缺少了cups-libs-1.1.17-14包,可安装cups-libs-1.1.17-14包又必须有libjpeg.so.62、 libpng12.so.0、libtiff.so.3这三个包的支持,在第一张光盘中找到这三个包并安装成功,然后再来安装cups-libs- 1.1.17-14包。最后才成功的安装了samba。 最小化安装系统就是不爽!

    ·启动samba服务

    安装完成后,使用service   smb start 命令启动samba服务。如果想让samba服务开机自动加载,可使用ntsysv命令打开开机自动加载的服务,并勾选smb,确定后即可实现开机加载samba服务。

    ·关闭防火墙

    默认情况下防火墙关闭了139 TCP端口,也关闭了nmbd进程所需要的137、138端口。所以我们使用命令service iptables stop命令关闭防火墙。也可对防火墙进行修改,放行TCP139 UDP 137、138端口。

二:配置samba服务

    samba服务的配置文件是 /etc/samba/smb.conf,我们使用VI编辑器打开smb.conf文件,对samba进行配置

    smb.conf文件中包括4中结构,【Global】、【Homes】、【printers】、【Userdefined_shareName】,其中:

    Globa用于定义全局参数和缺省值

    Homes用于用户的home目录共享

    Printers用于定义打印机共享

    Userdefined_ShareName用于自定义共享(可有多个)

    说明:文件中开头带有“#”为说明文件,不执行。     开头带有“;”为举例文件,不执行(若想让其执行,去掉“;”)。

    ·配置全局参数【Global】

    1>基本全局参数

    workgroup     设置samba要加入的工作组

    server string    指定浏览列表里的机器描述

    netbios name   设置samba的NetBIOS名字                    (需要自己添加)

    client code page 设置客户字符编码也 936为简体中文(需要自己添加)

   

    2>日志全局参数

    log file           指定日志文件的名称

    max log size 指定日志文件的最大尺寸(KB)

   

    3>安全全局参数

    security     定义samba的安装等级,share--用户不需要用户名和密码即可登陆samba服务器;user--由提供samba服务的samba服务器负责检查帐户及口令;server--检查帐户及口令的工作指定由另一台NT/2000或samba服务器负责;domain--指定windowsNT/2000域控制器来验证用户帐户、密码

    encrypt passwords = yes

    smb passwd file = /etc/samba/smbpasswd

    这两行用于设定是否对samba密码进行加密,并指定加密文件存放路径.

   

    hosts allow 定义允许访问此服务器的IP地址,如192.168.1. 意思为只有192.168.1.0这个网段的IP才能访问该服务器

   

    ·配置home共享【home】

    由于在home共享默认将用户的宿主目录进行了共享,这是十分危险的。所以我们必须删除home共享,方法很简单,将所有的指令前加“;”或“#”,让这条指令不执行,也就不对用户的宿主目录共享了

   

    ·配置自定义共享

    自定义共享,只需在文件最后加入【share】,名字随便取。其中一的参数我们来依依介绍

    comment    描述该共享的名称

    path           定义该共享的目录

    browseable    指定共享的目录是否可浏览

    writable          指定共享的目录是否有写入权限

    read only       指定共享的目录为只读权限

    public           指定是否可以允许Guest帐户访问

    guest ok      通public相同,yes为允许guest访问

    only guest      指定只有guest用户可以访问

    calid users    指定访问该共享的用户

   

    ·配置完成后的工作

    在配置完成后,我们只需新建path定义的共享目录,并使用chmod命令设置了其权限为777。

     这样在重启smb服务后客户端就可以访问该服务器(我修改了全局参数中的security=share,所以进入服务器不需要输入用户名和密码)

    进入samba服务器后,我们没有看到任何文件,是因为我们设置了browseable=no,这样客户端访问是不能浏览目录的。如果想让客户端浏览目录,修改browseable=yes

三:samba服务器配置实例

    以下设置中,【Global】、【Homes】、【printers】参数保持默认

    ·实例一:访问服务器需用户名和密码验证

    新建一用户如test,在命令行下输入smbpasswd -a test,使test用户同时成为samba用户,接着要求输入两次samba密码,输入后可在客户端使用test用户和输入的密码进入服务器(前提 Global中设置security=user)

    smbpasswd -d    test     禁用test用户作为samba用户

    smbpasswd -e   test     启用test用户作为samba用户

    smbpasswd -x   test      删除test用户作为samba用户

  

·实例二:客户端允许写入

·实例三:客户端只能通过用户访问

·实例四:简单电影服务器

    设置Global中security=share,这样用户就可以不用任何权限访问电影服务器了。可是当我们给服务器上传电影时该怎么办呢?如果给该共享 写入权限,我们是可以给服务器上传电影了,但其他用户也可以为该服务器上传东西。如果上传个木马,放个鸽子,后果不堪设想啊。其实我们可以在服务器上新建 一FTP站点,并且此站点拒绝匿名用户访问;新建一用户名,将其宿主目录设置为/movice;设置为只有某个特定的用户才可访问,并在/etc /vsftp.ftpuser中添加其他用户。这样我们可以在客户端安全、快速的给服务器上传电影了
阅读(1541) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~