Linux samba 文件共享

学校要求建立一个软件共享平台。需求如下:普通用户可以直接访问192.168.100.100,而不用输入用户密码,权限是只读;而管理员登陆后可以对文件夹,文件进行管理操作。

有任何不足之处请高手指点。

一:挂载硬盘并分区

1:挂载好硬盘后输入fdisk –l 查看磁盘信息


 

2:可以看到除了本地的sda外,还多了一个sdb的就是我们刚才挂上去的盘

然后用fdisk /dev/sdb进行分区:


 

3:进入fdisk命令,输入h可以看到该命令的帮助,按n进行分区


 

4:这里输入e即分为逻辑分区,按p即分为主分区,我们要将这块盘分为主分区即输入p


 

5:到这里输入该主分区为第几个主分区,由于是新盘输入1来分第一个主分区


 

6:First Cylinder是选择该分区的起始磁盘数,这里可自定义也可不做选择,默认是1,如无特殊需求强烈建议选择默认,也就是1来分区(直接按回车)


 

7:接下来是定义该分区的大小,如果按默认(按回车)即是使用全部可用存储额,也可以是用M或m单位结尾的数字(大写M是大B的意思,如果输入1M实际上是X8也就是8m的空间),这里我们先分一个1G的空间,所以输入+1024m

    


 

8:之后输入w写入分区,等待结束皆可


 

9:再输入fdisk -l 可以看到我们刚才分的一个分区,之后用mkfs -t ext3 -c /dev/sdb1进行格式化,如有多个分区可把sdb1改成sdb2 sdb3...以此类推,具体可用fdisk -l看到每个分区的名字


 

10:上图蓝色部分是写硬盘卷标的,如不想要卷标可直接按回车,现在分区好了我们用mount 挂载一下该分区即可使用了,这里我把它挂载到/home/test目录下,也可以自建一个 目录挂载

Linux samba 文件共享_linux samba


 

11: 来看一下分区大小是否和预定的一样,使用df -TH命令看一下当前挂载的分区和大小,看到刚分的分区了吧

Linux samba 文件共享_休闲_02


 

12:如果想每次系统重启都能自动挂载该分区可修改/etc/fstab文件,在最后加一段 /dev/sdb1    /www    ext3    defaults 1 2 (格式说明:/dev/sdb1 代表哪个分区  ext3是该分区的格式 defaults 是挂载时所要设定的参数(只读,读写,启用quota等),输入defaults包括的参数有(rw、dev、exec、auto、nouser、async) ,1是使用dump是否要记录,0是不要。 2是开机时检查的顺序,是boot系统文件就为1,其他文件系统都为2,如不要检查就为0)

Linux samba 文件共享_休闲_03





 

二:samba服务器的配置

1:安装samba 服务

Rpm –ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm

Rpm –ivh samba-3.0.33-3.28.el5.i386.rpm

Rpm –ivh samba-client-3.0.33-3.28.el5.i386.rpm

Rpm –ivh samba-common-3.0.33-3.28.el5.i386.rpm

Service smbd restart

2:  创建samba用户数据库(samba用户账户必须有对应的系统用户账户存在)

usreadd  test

usreadd  test1

smbpasswd  -a  test

smbpasswd  -a  test1

-h    显示samba命令帮助信息

-a    添加指定的samba用户

-d    禁用指定的samba用户

-e    启用指定的samba用户

-x    删除指定的samba用户

基于Windows安全考虑。samba服务提供了用户名映射功能,(将不同的用户名对应为同一个samba账户,起到隐藏对应的系统用户账户的效果,减少密码穷举攻击的风险)

/etc/samba/smbusers

vi  /etc/samba/smbusers 

Test=smbadmin

3:samba主服务的配置

sanba思想:在samba的主目录下建立一个或多个文件夹,其中这些二级文件夹是公布的,权限是只读,而管理的话则使用上级目录进行管理。

配置文件:vim /etc/samba/smb.conf

[global]

null password =yes                                  //匿名访问不用输入账户密码

bind interfaces only =yes

map to guest =Bad Password

encrypt password =yes

smb passwd file =/etc/samba/smbpasswd

#client code page 936

dos charset = CP936

unix charset=CP936

stat cache size 128

server string =test  server

workgroup=WORKGROUP

#security =share

security=user

os level =30

auto services=global

host msdfs =yes

max disk size =0

create mask =0775

directory mask =0755

load printers =no

template shell =/bin/false

winbind user default domain =no

username map=/etc/samba/smbusers              //账户映射

[cduestc]

commet= public share with test files               //一个名字,可随便取

path=/home/test/cduestc                       //设置要共享的目录路径

public=yes                                   //设置为匿名访问

read only =yes                                //权限只读

[test]

valid users =test,test1                        //可管理账户

path=/home/test                           //共享目录的上层路径

browseable = no                           //不可浏览

writable =yes                             //可写

write list =test,test1                      //管理权限用户列表

sync always =yes                          //即使刷新

directory mode =0755                     //管理员建立目录的权限

create mode =0755                       //管理员建立文件的权限

 

保存后重启服务。

4:讲smb服务设为开机启动

Vim /etc/rc.d/rc.local

Linux samba 文件共享_samba_04


 

三:配置http访问

1:安装httpd服务

Rpm –ivh httpd-2.2.3-43.el5.i386.rpm

Rpm –ivh httpd-manual-2.2.3-43.el5.i386.rpm

2:配置httpd

vi m /etc/httpd/conf.d/welcome.conf    把文件的东西都注释掉

Linux samba 文件共享_samba_05


vim /etc/httpd/conf/httpd.conf

DocumentRoot "/home/test"

<Directory "/home/test">

四:使用说明

samba服务以开机自动启动,挂载点开机自动挂载

1: 匿名访问

权限:只读

ip:192.168.100.100

可直接访问文件夹:test       more

(注:访问到的是test/cduestc,test/more)

 

2:管理员管理文件

权限:可读可写可删除

在映射驱动器里输入:\\192.168.100.100\tes

账户有两个:

test             test

test1               test1

管理员不慎把cduestc 或者more文件夹删除后请重建相同名称的文件夹(并修改权限为777),

否则匿名将无法访问,管理员无法上传删除此文件夹文件。

如要添加文件夹及重命名,请到vi /etc/samba/smb.conf下添加如下配置:

[cduestc]                                    //匿名访问时显示的文件夹名

commet= public share with test files    //注释

path=/home/test/cduestc                 //路径

public=yes                                   //是否公开或允许匿名访问,yes为允许匿名

read only =yes                               //设为只读

然后把新建立的文件夹的权限改为777(chmod 777 [folder name])这样就能正常读写了。

效果图:

Linux samba 文件共享_职场_06

Linux samba 文件共享_职场_07

Linux samba 文件共享_linux_08

Linux samba 文件共享_linux_09

Linux samba 文件共享_linux_10