Samba
Online
|
1#
Online 发表于 2007-04-20 00:54
Samba
一、Samba 是什么
Samba(SMB是其缩写)是一个网络服务器。Samba使用SMB 协议来通过网络连接共享文件和打印机。支持该协议的操作系统包括 Microsoft Windows、OS/2、和 Linux。 二、为什么要使用Samba 如果你的网络中既有 Windows 机器又有 Linux 机器,Samba 就会发挥作用。Samba 会允许文件和打印机被网络中的所有系统共享。 Samba 既可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件。 在日常工作中我们一般会使用Samba的共享文件与共享服务器的服务。 在windows中我们可以使用网络邻居直接访问它。 三、安装Samba 1.所需包 samba-3.0.10-1.4E.2.i386.rpm //服务器端软件包 samba-client-3.0.10-1.4E.2.i386.rpm //客户端软件包 samba-common-3.0.10-1.4E.2.i386.rpm //通用软件包 2.安装 # rpm -ivh samba-3.0.10-1.4E.2.i386.rpm # rpm -ivh samba-client-3.0.10-1.4E.2.i386.rpm # rpm -ivh samba-common-3.0.10-1.4E.2.i386.rpm 3.启动Samba # service smb start 开机启动samba # chkconfig smb on 4.查看进程,确定Samba是否起来 # pgrep smb 3879 3883 如果出现两个进程号,就表示已经起来。 四、配置samba实例 1.例一:做一个共享目录public ,使匿名用户可读,可写。 第一步 编辑samba配置文件 /etc/samba/smb.conf smb.conf配置我不一一列举, 下面列出的是变动的部分。 [global] 全局配置 workgroup = MYHOME // 指定工作组 server string = File Server // 服务器的说明 security = share // 安全级别: 共分四种 share (任何用户都不需要密码,直接可以访问) // user 要提供用户名和密码才能访问 // server 将用户和密码提交到另一服务器验证,如果递交失败,就退到user安全级。 // 要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。 [public] comment = Public Stuff path = /home/public public = yes browseable = yes writeable = yes 常用参数: comment : 目录说明 path : 目录路径 public 开放共享 默认为no , 如果=yes 表示无需身份验证 browseable: 显示共享名称。 valid users: 允许列表中的用户访问 read only: 默认为yes,共享目录只读 。 write able: write able =no 与read only = yes 一样的效果 wire list: 如果前面只读,只有在此里面的用户才有写的权利 creat mask: 指定在共享目录里面建立文件的权限, 权限最高只能为 766 directory mask: 指定建立目录的权限 force user: 指定存取的用户张号 force group: 指定用户存取组 第二步 建立共享目录,并设定目录的权限 # mkdir /home/public # chmod 777 /home/public 第三步 重起samba # service smb restart 第四步 测试 这样基本就可以了. 第五步 windows下访问 如果一切顺利,可以直接通过网络邻居直接访问了。 2.例二 公司有三个部门分别是: 业务 财务 经理 每个部门假设有2个人员,分别为 yewu01,yewu02 caiwu01,caiwu02 jingli01 jingli02 1)每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。 2)建立一个caiwu 的文件夹, 要求对财务组和领导组的可看到, 只有caiwu01有写入的权限 , 其他的不能访问 3)建立一个yewu的文件夹, 要求对业务组可读写, 经理组的可查看. 4)建立一个公司文件共享目录, 要求全部人可查看, 但每个人只能删除自己的文件, 不能删除别人。 第一步 先建立用户的帐号与所属工作组, 建立对应的目录并给目录777的权限 # groupadd caiwu # groupadd yewu # groupadd jinli # useradd caiwu01 -g caiwu # useradd caiwu02 -g caiwu # userdel yewu01 -g yewu # useradd yewu01 -g yewu # useradd yewu02 -g yewu # useradd jinli01 -g jinli # useradd jinli02 -g jinli # mkdir -p /home/samba/caiwu # mkdir -p /home/samba/yewu # mkdir -p /home/samba/public # chmod 777 -R /home/samba 这里给777的权限,避免后面的因为权限而产生的麻烦. # 使用smbpasswd -a caiwu01(caiwu02...)将6个用户加到samba用户中. 第二步 设定samba配置文件. 一般主要修改下面几个选项就可以了 #=========== Global Settings ============== [global] workgroup = MYHOME hosts allow = 192.168.1. (安全设定允许访问的网段, 注释掉意思不加限制允许任意网络访问) security = user #=========== Share Definitions =============== [homes] comment = Home Directories browseable = no writable = yes 上面是设定每个用户的宿主目录, 一般samba是设定好的,无需更改. [caiwu] comment = caiwu directory path = /home/samba/caiwu public = no write list = caiwu01 valid users = @caiwu,@jinli [yewu] comment = yewu directory path = /home/samba/yewu public = no write list = @yewu valid users = @jinli [public] comment = Public Stuff path = /home/samba/public public = yes browseable = yes writeable = yes 完成后记得重起samba # service smb restart 第三步 设定public的权限,因为samba的不能做到每个人只能删除自己的文件,不能删除别人的功能,linux设置目录Sticky bit权限. 目录设定了Sticky的权限,在这个目录下的文件只有root与文件的所有者才能删除, 这样可以实现我们上面第四个要求. # chmod 1777 /home/samba/public 五、测试 用windows或samba client测试你所做的是否正确. 先用samba的cilent端命令来测试一下 smbclient -L 服务器ip -N guest帐户查询你的服务器的samba共享情况,你可以检验一下是否lingdao目录时候能被guest帐户看到,应该是看不到的,当然你也可以以某个用户的名义查看 smbclient -L 服务器ip -U caiwu01 系统会提示密码,只要输入smb密码就行。 smbclient //服务器ip/caiwu -U caiwu01 #以caiwu01用户的名义登录caiwu目录 smbmount //服务器ip/caiwu /mnt/caiwu -o username=caiwu01 #把服务器的财务目录映射到本地的/mnt/caiwu目录 用WINDOWS测试时应注意 net use 里面的内容。 |