转载自。密林三木@51CTO
学校要求建立一个软件共享平台。需求如下:普通用户可以直接访问192.168.100.100,而不用输入用户密码,权限是只读;而管理员登陆后可以对文件夹,文件进行管理操作。
有任何不足之处请高手指点。
一:挂载硬盘并分区
1:挂载好硬盘后输入fdisk �Cl 查看磁盘信息
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目录下,也可以自建一个 目录挂载
11: 来看一下分区大小是否和预定的一样,使用df -TH命令看一下当前挂载的分区和大小,看到刚分的分区了吧
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)
二:samba服务器的配置
1:安装samba 服务
Rpm �Civh perl-Convert-ASN1-0.20-1.1.noarch.rpm
Rpm �Civh samba-3.0.33-3.28.el5.i386.rpm
Rpm �Civh samba-client-3.0.33-3.28.el5.i386.rpm
Rpm �Civh 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的主目录下建立一个或多个文件夹,其中这些二级文件夹是公布的,权限是只读,而管理的话则使用上级目录进行管理。
[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
三:配置http访问
1:安装httpd服务
Rpm �Civh httpd-2.2.3-43.el5.i386.rpm
Rpm �Civh httpd-manual-2.2.3-43.el5.i386.rpm
2:配置httpd
vi m /etc/httpd/conf.d/welcome.conf 把文件的东西都注释掉
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])这样就能正常读写了。
效果图: